基本上我正在尝试编写一个程序,它将从用户读取一组有限的值然后打印平均值。 (我知道如何进行计算,所以我会把它们排除在外。)
我遇到了循环逻辑方面的问题。
我知道这里的每个人都更喜欢我尝试过,但我是循环新手,我在理解循环逻辑方面遇到了极大的困难。
我正在尝试为我的班级完成这项任务,但是当问到问题时,老师正在飞过材料,并没有任何帮助。当我在问题上寻求帮助时,他说尽力尝试,我会对其进行评分吗?
老实说,我不知道从哪里开始。
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?
}
}
}
答案 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++;
我们可以验证输入的号码是否为停止条件,而不是每次验证我们是否输入了号码。