我需要编写一个接受非负双重类型的程序 数字为 收入金额一个接一个 l负数 进入 ,负数结束了 程序。通过输入负数完成程序 ,它打印出来了 输入收入组的最小值,平均值和最大值(不包括最后的负数) 数 是 因为它只表示用户输入的结束)。
package incomeapp;
import java.util.Scanner;
/**
*
* @author Kenneth
*/
public class IncomeApp {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter an income (any negative number to quit: ");
double sum = 0;
int count = 0;
double i = sc.nextDouble();
while (i > 0){
double nextDouble;
nextDouble = sc.nextDouble();
if (i < 0){
break;
}
}
}
}
答案 0 :(得分:1)
您的代码存在一些问题:
现在,这似乎非常类似于我的编程任务,因此我不会为您发布完整的代码。以下是修复代码应该采取的措施:
选择一种终止循环的方法。以下是关于如何做到这两点的两个想法:
double i = sc.nextDouble();
while (i > 0) {
// Do something with i
i = sc.nextDouble();
}
或
while (true) {
double i = sc.nextDouble();
if (i <= 0) {
break;
}
// Do something with i
}
答案 1 :(得分:0)
试试这个:
import java.util.*;
public class HelloWorld{
public static void main(String []args){
Scanner sc = new Scanner(System.in);
System.out.print("Enter an income (any negative number to quit: ");
double sum = 0;
double max = 0;
double min = Double.MAX_VALUE;
int count = 0;
double nextDouble;
while (sc.hasNext()) {
nextDouble = sc.nextDouble();
max = Math.max(max, nextDouble);
if (nextDouble < 0){
break;
}else {
min = Math.min(nextDouble, min);
sum += nextDouble;
count++;
}
}
System.out.println("Average: " + sum/count);
System.out.println("Min: " + min);
System.out.println("Max: " + max);
}
}