做循环程序

时间:2013-03-31 01:41:46

标签: java loops while-loop do-while

我正在研究这个程序,用于我的java类简介。我遇到了很多问题。我正在使用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);
            }
        }
    }
}

3 个答案:

答案 0 :(得分:1)

你正在使用do..while构造,并且do语句在它的末尾没有任何匹配的while子句,可能是由于支架放错位置。

答案 1 :(得分:0)

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

while循环:

while (condition) {
    loop-body
}

do循环:

do {
    loop-body
} while (condition);

您的外循环是do循环,但缺少终止while (condition)部分。外loop-body循环的do部分本身包含while循环的内循环。仔细检查你的代码结构,你应该能够解决它。

答案 2 :(得分:0)

你确实在没有正确语法的情况下使用do while循环。删除最外面的do语句。

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

祝你好运!