我正在制作一本成绩簿,询问用户想要做什么,然后询问所选名称,然后询问他们想要输入的等级。它出来很好,但我无法存储并添加用户输入的数字。它要求他们输入一个数字,然后输入-1
退出。然后它应该将数字加在一起并显示它们,但每次程序输出:
“数字总数为-1”
除了输入的最后一个数字({1}}之外,它似乎没有存储任何数字,因为这是他们最后输入的内容。帮助
-1
}
答案 0 :(得分:2)
while ( choice != -1 ) {
System.out.println( "Enter a homework grade. Press -1 when finished" );
homework = dylan.nextInt();
}
此循环永远不会退出,因为用户的条目已放入homework
,但您在while循环中测试choice
。
修复:
while ( homework != -1 ) {
System.out.println( "Enter a homework grade. Press -1 when finished" );
homework = dylan.nextInt();
}
另请注意,正如@Jack和其他人所述,homework
(应该真的被命名为iTotalGrades
)应该累积输入,而不仅仅是覆盖具有下一个值。它也不应该添加-1
(再次感谢@Jack),这根本不是等级。这意味着这是我的建议:
while (iInput != -1 ) {
System.out.println( "Enter a homework grade. Press -1 when finished" );
iInput = dylan.nextInt();
if(iInput != -1)
iTotalGrades += iInput;
}
}
正如其他人所指出的,还存在其他问题,但这两个问题都很重要。
答案 1 :(得分:1)
替换它:
homework = dylan.nextInt();
用这个:
homework += dylan.nextInt();
您的代码突破循环也是错误的。您永远不会更新choice
变量,因此您永远不会退出循环。
当用户想要离开循环时,您还要小心不要将-1
添加到homework
。
答案 2 :(得分:-2)
您将扫描仪命名为dylan,而您只制作了一台扫描仪,但多次使用它。因此,您将整个程序的所有变量存储到dylan中。所以它覆盖了变量