所以我对Java语言还比较陌生,但我正在努力变得更好,以便在简历中添加更多技能。我目前专注于阵列,我正在编写一个程序,我希望能够与条形码扫描仪或键盘一起使用,以跟踪文化丰富学分(受我学校需要的启发)。我认为这可能是一个很好的开始程序,可以让我了解数组的使用,但我对这两个数组有问题。它们不断覆盖输入的新值。我一直在谷歌上搜索和尝试一些东西,但我仍然无法让它们正常工作,我想向经验丰富的程序员寻求帮助。我知道我的输出方法相当懒惰,但它可以实现我希望看到的输出格式。
这是我的代码:
public static void main(String []args)throws InputMismatchException
{
Scanner user_input = new Scanner( System.in );
int n = 0;
String Name;
int CEU;
String[] users = new String[5];
String[] numbers = new String[6];
Object end = null;
Object print = null;
System.out.print("Enter value for CEU: ");
CEU = user_input.nextInt();
while (n >= 0)
{
/* Loop*/
System.out.println("Scan ID or type **end,print** ");
numbers[n] = user_input.next();
if ("end".equals(users[n] ))
{
System.out.print("Program terminated.");
System.exit(0);
}
if ("print".equals(numbers[n]))
{
System.out.print("CEUs: " + CEU);
System.out.print(" ID#: " + numbers[0]);
System.out.print(" Name: " + users[0]);
System.out.print("nCEUs: " + CEU);
System.out.print(" ID#: " + numbers[1]);
System.out.print(" Name: " + users[1]);
System.out.print("nCEUs: " + CEU);
System.out.print(" ID#: " + numbers[2]);
System.out.print(" Name: " + users[2]);
System.out.print("nCEUs: " + CEU);
System.out.print(" ID#: " + numbers[3]);
System.out.print(" Name: " + users[3]);
System.out.print("nCEUs: " + CEU);
System.out.print(" ID#: " + numbers[4]);
System.out.print(" Name: " + users[4]);
}
else
{
System.out.print("Enter Name: ");
users[n] = user_input.next();
}
}
}
在循环中,您需要增加n,因为它总是0。使用:n++;在while循环内的最后一行代码处。
n没有递增。因为n永远不会改变,所以每次执行循环时,它都会覆盖数组的同一部分。此外,看起来你以后可能会出现界外错误,因为我会继续增加。很快它将大于数字数组的最大索引,因此它将返回错误。您应该尝试添加一些代码来阻止错误的发生。