阅读数字时无限循环

时间:2013-10-14 15:53:37

标签: java

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

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

我知道这里的每个人都更喜欢我尝试过,但我是循环新手,我在理解循环逻辑方面遇到了极大的困难。

我正在尝试为我的班级完成这项任务,但是当问到问题时,老师正在飞过材料,并没有任何帮助。当我在问题上寻求帮助时,他说尽力尝试,我会对其进行评分吗?

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

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?
    }
}
}

3 个答案:

答案 0 :(得分:5)

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

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

你总是在1 st 元素上,询问是否有2 nd 元素。

您应该使用:

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

BTW:请避免使用不带括号的声明。它是万恶之源。

答案 1 :(得分:3)

当您第一次阅读时,您不再阅读,因此hasNext()将始终保持true,因为始终会有 next 元素,即。{你正在阅读的当前元素。

一种解决方案是做类似的事情:

String input = null;
while((input = in.next()) != null) {
     //...
}

答案 2 :(得分:0)

你可以试试这个:

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

我们可以验证输入的号码是否为停止条件,而不是每次验证我们是否输入了号码。