Java 循环程序

Java 循环程序,java,loops,while-loop,do-while,Java,Loops,While Loop,Do While,我正在为我的java入门课程编写这个程序。我一直有很多问题。我正在使用eclipse。程序应该找到平均数、范围数、最小数和最大数。我拥有一切(至少我是按照她的笔记做的,这让我很困惑……),并且把一切都放进了eclipse中。它总是告诉我一个错误,我需要一段时间();结束循环。我已经这么做了…我放错地方了吗?我做错了什么 import java.util.Scanner; public class A_Alnor_SquenceOfNumbers { public static void

我正在为我的java入门课程编写这个程序。我一直有很多问题。我正在使用eclipse。程序应该找到平均数、范围数、最小数和最大数。我拥有一切(至少我是按照她的笔记做的,这让我很困惑……),并且把一切都放进了eclipse中。它总是告诉我一个错误,我需要一段时间();结束循环。我已经这么做了…我放错地方了吗?我做错了什么

import java.util.Scanner;
public class A_Alnor_SquenceOfNumbers {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int count = 0;
        double sum = 0;
        double input = 0;
        double average;
        double min = in.nextDouble();
        double max = in.nextDouble();

        do {
            System.out.println("Enter a value, type -1 to finish: ");
            boolean done = false;
            while (!done) {
                input = in.nextDouble();
                if (input == -1) {
                    done = true;
                } else

                    while (in.hasNextDouble()) {
                        input = in.nextDouble();
                        sum = sum + input;
                        count++;
                    }

                if (count > 0) {
                    average = sum / count;
                }
                while (in.hasNextDouble()) {
                    input = in.nextDouble();
                    if (input > max) {
                        max = input;
                    }
                    while (in.hasNextDouble())
                        if (input < min) {
                            min = input;
                        }
                }
            }
            while (done) ;
            {
                System.out.println("The average is " + average + ".");
                System.out.println("The smallest number is " + min + ".");
                System.out.println("The largest number is " + max + ".");
                System.out.println("the range is " + min + " to " + max + ".");
                System.out.println(count);
            }
        }
    }
}
import java.util.Scanner;
公共A级不包含数字{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
整数计数=0;
双和=0;
双输入=0;
双倍平均;
double min=in.nextDouble();
最大加倍=英寸下一次加倍();
做{
System.out.println(“输入一个值,键入-1以完成:”);
布尔完成=假;
而(!完成){
input=in.nextDouble();
如果(输入==-1){
完成=正确;
}否则
while(在.hasNextDouble()中){
input=in.nextDouble();
总和=总和+输入;
计数++;
}
如果(计数>0){
平均数=总和/计数;
}
while(在.hasNextDouble()中){
input=in.nextDouble();
如果(输入>最大值){
最大值=输入;
}
while(在.hasNextDouble()中)
如果(输入<分钟){
最小值=输入;
}
}
}
当(完成)时;
{
System.out.println(“平均值为“+平均值+”);
System.out.println(“最小的数字是“+min+”);
System.out.println(“最大数字为“+max+”);
System.out.println(“范围为“+min+”到“+max+”);
系统输出打印项次(计数);
}
}
}
}

您使用的是do..while构造,而do语句的结尾没有任何匹配的while子句,可能是因为括号放错了位置。

您使用的是do..while构造,而do语句的结尾没有任何匹配的while子句,可能是因为放错了括号。

Java中有几种循环。您似乎使用了两种:

while
循环:

while (condition) {
    loop-body
}
do {
    loop-body
} while (condition);
do
循环:

while (condition) {
    loop-body
}
do {
    loop-body
} while (condition);

您的外循环是一个
do
循环,但缺少终止
while(条件)
部分。外部
do
循环的
循环体
部分本身包含
循环的内部循环。仔细检查你的代码结构,你应该能够计算出来。

Java中有几种循环。您似乎使用了两种:

while
循环:

while (condition) {
    loop-body
}
do {
    loop-body
} while (condition);
do
循环:

while (condition) {
    loop-body
}
do {
    loop-body
} while (condition);

您的外循环是一个
do
循环,但缺少终止
while(条件)
部分。外部
do
循环的
循环体
部分本身包含
循环的内部循环。仔细检查你的代码结构,你应该能够算出它。

你确实在使用没有正确语法的do-while循环。删除最外层的do语句

此外:您需要修改大量代码,因为这不会终止。它会检查一次输入是否为-1(注意这是一个INT而不是DOUBLE!!!),如果不是这种情况,您会一直向用户询问DOUBLE(在很多while语句中)。首先创建伪代码并确保其正确,因为这样做行不通


祝你好运

您确实在使用do while循环,但没有正确的语法。删除最外层的do语句

此外:您需要修改大量代码,因为这不会终止。它会检查一次输入是否为-1(注意这是一个INT而不是DOUBLE!!!),如果不是这种情况,您会一直向用户询问DOUBLE(在很多while语句中)。首先创建伪代码并确保其正确,因为这样做行不通


祝你好运

检查添加的“while”的位置。您的do语句也应该有一个。检查。+1对于我在SOYes上看到的一个更好的家庭作业问题,你把它放错地方了:-)。您应该将while(done)行移出一个街区。并且不需要将输出行(System.out…)放在块中。但是正如Héctor提到的,do while循环将重新启动整个过程,让您永远重复任务。您的do语句也应该有一个。检查。+1对于我在SOYes上看到的一个更好的家庭作业问题,你把它放错地方了:-)。您应该将while(done)行移出一个街区。并且不需要将输出行(System.out…)放在块中。但是正如Héctor所提到的,DoWhile循环将重新启动整个过程,并让您永远重复任务。