You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java多维数组输出重复问题求助:新手遇循环及Scanner使用障碍

解决你的Java问题:循环重复输出与Scanner类使用

一、循环输出重复问题的修复

你当前代码用了两层嵌套for循环,外层循环会执行10次(对应id数组的长度),内层循环每次又完整遍历userid数组(也是10次),所以会把所有用户信息重复输出10遍,总共输出100条内容。

只需要用一层循环就能解决——因为id、userid、password三个数组长度一致,索引一一对应,遍历一次即可输出每组对应信息:

import java.util.Scanner;

class ArrayStudies {

  public static void main(String[] args) {
    // 定义并初始化ID数组
    int[] id = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    // 定义并初始化用户ID数组
    String[] userid = {
      "Admin", "Vale.Vicky", "Lane.Lois", "Kent.Clark", "Wayne.Bruce",
      "Parker.Peter", "Rogers.Steve", "Luther.Lex", "Osborn.Harry", "Prince.Diana"
    };
    // 定义并初始化密码数组
    String[] password = {
      "Password1", "ZZZZZZZ", "VVVVVV", "AAAAAA", "FFFFFFFF",
      "RRRRRRR", "QQQQQQ", "GGGGGG", "YYYYYY", "LLLLLLL"
    };

    // 遍历数组输出对应信息
    for (int i = 0; i < id.length; i++) {
      System.out.println("ID: " + id[i] + " UserID: " + userid[i] + " Password: " + password[i]);
    }
  }
}

关于你提到的“行合并问题”,确保使用System.out.println(自带换行)而非System.out.print,这样每条用户信息会单独占一行,避免排版混乱。

二、Scanner类的正确使用示例

这里给你一个结合现有用户数据的登录验证示例,直观展示Scanner的用法:

import java.util.Scanner;

class ArrayStudies {

  public static void main(String[] args) {
    // 初始化用户数据数组
    int[] id = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    String[] userid = {
      "Admin", "Vale.Vicky", "Lane.Lois", "Kent.Clark", "Wayne.Bruce",
      "Parker.Peter", "Rogers.Steve", "Luther.Lex", "Osborn.Harry", "Prince.Diana"
    };
    String[] password = {
      "Password1", "ZZZZZZZ", "VVVVVV", "AAAAAA", "FFFFFFFF",
      "RRRRRRR", "QQQQQQ", "GGGGGG", "YYYYYY", "LLLLLLL"
    };

    // 创建Scanner对象读取控制台输入
    Scanner scanner = new Scanner(System.in);

    // 获取用户输入的用户名和密码
    System.out.print("请输入用户名:");
    String inputUserid = scanner.nextLine();
    System.out.print("请输入密码:");
    String inputPassword = scanner.nextLine();

    // 验证登录信息
    boolean loginSuccess = false;
    for (int i = 0; i < userid.length; i++) {
      if (userid[i].equals(inputUserid) && password[i].equals(inputPassword)) {
        System.out.println("登录成功!你的ID是:" + id[i]);
        loginSuccess = true;
        break;
      }
    }

    if (!loginSuccess) {
      System.out.println("用户名或密码错误!");
    }

    // 关闭Scanner资源
    scanner.close();
  }
}

Scanner核心使用要点:

  • 通过new Scanner(System.in)创建实例,关联控制台输入
  • 常用读取方法:nextLine()读取整行字符串,nextInt()读取整数,next()读取空格分隔的单个字符串
  • 使用完毕后调用scanner.close()关闭资源,避免内存泄漏

内容的提问来源于stack exchange,提问作者SCoffers Rel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:32:33