我试图获得用户输入,直到用户输入0,然后在JAVA中显示其中的最大值

时间:2017-02-05 10:03:33

标签: java loops

我是java的初学者并且不知道使用循环来编写程序,这些循环提示用户输入一个数字,直到用户没有输入0。 当用户输入0时,系统应在用户输入中显示MAX号

QUE 2  编写一个程序,要求用户输入一系列数字(双重类型)。数字由返回键分隔(并为每个输入提供提示)。用户输入0结束序列。然后输出所有输入数字的最大数量。下面是一个示例(斜体部分是用户的输入):请输入一个数字序列,用return分隔,然后在最后用0结束此序列:25 下一个号码:35.6 下一个号码:112.112 下一个号码:0 您输入的最大值为112.112

import java.util.Scanner;
  public class Q3

 {
 public static void main(String[] args[])
   {
    double n;
   // double i;
    double MAX=0;

    System.out.println("Please Enter the number: ");
    Scanner Kb = new Scanner(System.in);
    n = Kb.nextDouble();
   if(n>0){
     System.out.println("Please Enter the number: ");
         n = Kb.nextDouble();
         return;

}
    else if(n==0) {
    if (MAX>0){
        MAX=n;
        return ;

    }

  }  
 return;
}

 }

2 个答案:

答案 0 :(得分:3)

跟踪用户输入数字的最大值和每次检查是否大于最大值

-O0

由于零是终端字符,因此可以基本忽略负输入,并且max的初始值为零是可接受的。

请注意,如果用户决定为您提供无法解析为double的输入,则nextDouble可以抛出import java.util.Scanner; public class Q3 { public static void main(String... args) { double max = 0; System.out.println("Please enter the number: "); Scanner kb = new Scanner(System.in); double number = kb.nextDouble(); while (number != 0) { if (max < number) { max = number; } number = kb.nextDouble(); } System.out.print("The max is " + max); } }

答案 1 :(得分:0)

使用Collections.max

List<Double> doubleList = new ArrayList<>();
  System.out.println("enter a number :");
  Scanner kb = new Scanner(System.in);    
   while (kb.hasNext() ) {
            double input = kb.nextDouble();
            if(input == 0){
                break;
            }
            doubleList.add(input);
        }

 System.out.println("Max Value Entered : " + Collections.max(doubleList));