1

基本上我正在尝试编写一个程序,该程序将从用户那里读取一组有限的值,然后打印平均值。(我知道如何进行计算,所以我将把它们排除在外。)

我在循环的逻辑方面遇到问题。

我知道这里的每个人都希望我尝试它,但我是循环的新手,我在理解循环逻辑时遇到了极大的困难。

我正在尝试为我的班级做这项作业,但老师正在快速浏览材料,并且在提出问题时根本没有帮助。当我就某个问题寻求帮助时,他说尽你所能去尝试,我会相应地给它评分吗?

老实说,我不知道从哪里开始。

import java.util.Scanner;

public class P4Point5 {
public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String Status = "";
    int count = 0;

    while (in.hasNext()) {
        count++;
}        

    for (int i = 0; i < count; i++) {
//Do calculations here?
    }
}
}
4

3 回答 3

5

你永远不会得到下一个元素:

while (in.hasNext()) 
    count++;

您总是在第一个元素上并询问是否有第二个元素。

你应该使用:

while (in.hasNext()) 
  int next = sc.nextInt();

顺便说一句:请避免使用大括号的语句。它是万恶之源。

于 2013-10-14T15:56:02.673 回答
3

当您第一次阅读时,您不再阅读,所以hasNext()会一直停留,true因为总会有下一个元素,即..您正在阅读的当前元素。

一种解决方案是做这样的事情:

String input = null;
while((input = in.next()) != null) {
     //...
}
于 2013-10-14T15:56:09.133 回答
0

你可以试试这个:

while (in.nextInt() != 'SOME INT TO STOP LOOP') 
        count++;

我们可以验证输入的数字是否是停止条件,而不是每次都验证输入的数字。

于 2013-10-14T16:06:58.113 回答