所以我对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();
}
}
}
答案 0 :(得分:1)
在循环内部,你需要递增n,因为它总是为0.使用:n ++;在while循环内的最后一行代码。
答案 1 :(得分:0)
n没有递增。因为n永远不会改变,所以每次循环执行时它都会覆盖数组的相同部分。此外,您似乎可能会在以后遇到一个outofbounds错误,因为我会继续增加。很快它将大于数字数组的最大索引,因此它将返回错误。您应该尝试添加一些代码来阻止错误发生。