Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的连续循环_Java - Fatal编程技术网

java中的连续循环

java中的连续循环,java,Java,这个简单的代码片段不起作用。我想输入10,然后跳出while循环并计算平均值,但它不会跳出while循环 以下是我的代码: double total = 0; double average; int grade; int counter = 0; Scanner input = new Scanner(System.in); while(counter < 10) { grade = input.nextInt();

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

以下是我的代码:

    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);
双倍合计=0;
双倍平均;
国际等级;
int计数器=0;
扫描仪输入=新扫描仪(System.in);
while(计数器<10){
grade=input.nextInt();
总数+=年级;
计数器++;
}
平均数=总数/10;
showMessageDialog(null,平均值);

当用户输入10时,它不允许您跳出循环的原因是,当您退出循环时,您有一个完全独立的变量控制。
计数器
变量每次迭代递增一次,用于控制退出循环的时间。因此,您将始终在10次迭代后退出循环。要解决此问题,以便在用户输入10时退出循环,请使退出条件取决于
等级
,而不是
计数器
,如下所示:

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

附带说明:在接受用户输入时,您应该告诉用户您期望的内容,这样他们就不会输入您不期望的内容,并且能够按照您的说明操作。

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


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

对我来说很好。该循环很好,可以运行整整10次。你的问题一定在别的地方。@sina,问题/解决方案是什么?我想你误解了这个问题。OP说循环在10次迭代后会无限继续,而不是停止。我想了想,但从他在问题中使用的词(“我想键入10并打破while循环”)判断,我想他希望它会立即爆发,并对它为什么不爆发感到困惑。关键词是type,如中所示,他希望用户键入10并中断while循环。@adeen-s完全正确。没有stop@sina我很确定我解决了,看一看。但是,如果我对你想要的东西有误解,你应该编辑这个问题,让读者更清楚。