用户输入值未正确存储

时间:2014-02-12 16:38:41

标签: java

我正在制作一本成绩簿,询问用户想要做什么,然后询问所选名称,然后询问他们想要输入的等级。它出来很好,但我无法存储并添加用户输入的数字。它要求他们输入一个数字,然后输入-1退出。然后它应该将数字加在一起并显示它们,但每次程序输出:

  

“数字总数为-1”

除了输入的最后一个数字({1}}之外,它似乎没有存储任何数字,因为这是他们最后输入的内容。帮助

-1

}

3 个答案:

答案 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中。所以它覆盖了变量