Java 从标准输入中找出三个双精度中的最大值

Java 从标准输入中找出三个双精度中的最大值,java,double,java.util.scanner,Java,Double,Java.util.scanner,我们有一个java赋值,在这个赋值中,我们应该开发一个方法来扫描一行,该行应该包含三个双精度值,并返回最大值。允许抛出所有可能的异常 以下是我迄今为止所做的工作: import java.util.Scanner; public class s3dv { public static void main(String[] args) { Scanner input = new Scanner(System.in); double entered;

我们有一个java赋值,在这个赋值中,我们应该开发一个方法来扫描一行,该行应该包含三个双精度值,并返回最大值。允许抛出所有可能的异常

以下是我迄今为止所做的工作:

import java.util.Scanner;

 public class s3dv {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        double entered;
        System.out.println("Enter 3 values to find the maximum:");
        entered = input.nextDouble();
        System.out.println("Maximum is - " + getMaxValue(entered));
    }

    //Find maximum (largest) value in array using loop  
    public static double getMaxValue(double[] numbers){  
        double maxValue = numbers[0];  
        for(int i = 1; i < numbers.length; i++){  
            if(numbers[i] > maxValue){  
                maxValue = numbers[i];
            }
        }
        return maxValue;  
    }  // End getMaxValue method
}
import java.util.Scanner;
公共类s3dv{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
双重输入;
System.out.println(“输入3个值以查找最大值:”);
entered=input.nextDouble();
System.out.println(“最大值为-”+getMaxValue(输入));
}
//使用循环查找数组中的最大值
公共静态双getMaxValue(双[]数字){
double maxValue=数字[0];
对于(inti=1;imaxValue){
最大值=数字[i];
}
}
返回最大值;
}//End getMaxValue方法
}
我在第15行出错了

将代码更改为

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner input = new Scanner(System.in);
    double[] entered = new double[3]; 
    System.out.println("Enter 3 values to find the maximum:");
    for(int i=0;i<3;i++){
    entered[i] = input.nextDouble();
    }
    System.out.println("Maximum is - " + getMaxValue(entered)); 
}

//Find maximum (largest) value in array using loop
public static double getMaxValue(double[] numbers){
double maxValue = numbers[0];
for(int i = 1; i < numbers.length; i++){
if(numbers[i] > maxValue){
maxValue = numbers[i]; } } return maxValue;

}
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
扫描仪输入=新扫描仪(System.in);
双精度[]输入=新双精度[3];
System.out.println(“输入3个值以查找最大值:”);
对于(int i=0;i maxValue){
maxValue=numbers[i];}}返回maxValue;
}

当方法需要双数组时,不能为其提供双参数。而且,您还请求用户只输入一次双精度值,您应该重复该过程。将主方法更改为:

public static void main(String[] args)
{
    Scanner input = new Scanner(System.in);
    double[] entered = new double[3];
    int counter = 0;
    while (counter != 3)
    {
        System.out.println("Enter a double value:");
        entered[counter++] = input.nextDouble();
    }
    System.out.println("Maximum is - " + getMaxValue(entered));
}

您的
getMaxValue()
方法似乎没有问题,但是当从控制台输入双精度值时,使用逗号(,)而不是点(),您可能会得到
InputMismatchException

此主代码将在一行中读取3个双精度值,将它们拆分并将其传递给getMaxValue

 public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String userLine, lineSplitted[];

        System.out.println("Enter 3 values to find the maximum:");
        userLine = input.nextLine();
        lineSplitted=userLine.split(" ");

        double entered[]=new double[lineSplitted.length];
        for (int i=0; i<lineSplitted.length; i++) entered[i]=Double.valueOf(lineSplitted[i]);

        System.out.println("Maximum is - " + getMaxValue(entered));
    }
公共类测试{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
字符串userLine,lineSplitted[];
System.out.println(“输入3个值以查找最大值:”);
userLine=input.nextLine();
lineSplitted=userLine.split(“”);
双精度输入[]=新双精度[lineSplitted.length];

对于(int i=0;i)您得到的错误是什么?您正在向getMaxValue传递一个double,它需要一个double数组…input.nextDouble()不返回数组。您需要修复它。是否将其标记为家庭作业?for循环不应该从0开始吗?不,因为第0个元素已存储在变量maxValue中。您是否能够识别错误的位置?@Declarer我的意思是,我应该只提示问题一次,而不让问题循环3次。我是不允许的循环问题。