2017-03-03 92 views
-1

这个简单的代码片段不起作用。我想输入10个输入并跳出while循环并计算平均值,但它不跳出while循环。在java中连续循环

以下是我的代码:

double total = 0; 
    double average; 
    int grade; 
    int counter = 0; 
    Scanner input = new Scanner(System.in); 
    while(counter < 10) { 
     grade = input.nextInt(); 
     total += grade; 
     counter++; 
    } 
    average = total/10; 
    JOptionPane.showMessageDialog(null, average); 
+3

适合我。 –

+1

该循环工作正常,将会正好运行10次。你的问题必须在其他地方。 –

+0

@sina,问题/解决方案是什么? –

回答

0

此代码没有问题。如果您看不到JOptionPane,请尝试最小化所有窗口,因为它们可能出现在它们后面。

此外,在这种情况下使用for循环可能更好,而不是while循环。

0

的原因,它不会让你跳出循环的当用户输入10是因为当您退出循环有一个完全独立的变量控制。 counter变量每次迭代递增1,控制何时退出循环。因此,你将总是在10次迭代后退出循环。为了解决这个问题,让你退出循环,当用户输入10,让你的退出条件依赖于grade,不counter,就像这样:

while(grade != 10){ 
    grade = input.nextInt(); 
    if(grade != 10) 
     total += grade; 
} 

只是一个侧面说明:在接受用户输入,你应该告诉用户所期望的,所以他们不输入你不期望的东西,并且能够遵循你的指示。

+2

我想你误解了这个问题。 OP表示循环继续无限次地而不是在10次迭代后停止。 –

+0

我考虑过这个问题,但是根据他在问题中使用的词语(“我想输入10并跳出while循环”)来判断,我认为他期望它立即突然出现,并且为什么会出现混淆没有。 – UnknowableIneffable

+0

关键词是type,因为他希望用户输入10并跳出while循环。 – UnknowableIneffable