我正在研究这个程序,用于我的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);
}
}
}
}
答案 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语句中)。首先创建伪代码并确保这是正确的,因为这不起作用。
祝你好运!