Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行时错误-跳过一行用户输入(扫描仪)_Java_Java.util.scanner - Fatal编程技术网

Java 运行时错误-跳过一行用户输入(扫描仪)

Java 运行时错误-跳过一行用户输入(扫描仪),java,java.util.scanner,Java,Java.util.scanner,在我的tester文件中,我试图从用户那里接收3个输入,但是只接收到2个输入,而且程序似乎跳过了In.nextLine()代码行。这是我的密码: import java.util.Scanner; public class IngredientTester { public static void main(String[] args) { Scanner in = new Scanner(System.in); /*These 3 inputs wor

在我的tester文件中,我试图从用户那里接收3个输入,但是只接收到2个输入,而且程序似乎跳过了In.nextLine()代码行。这是我的密码:

import java.util.Scanner;

public class IngredientTester
{
   public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        /*These 3 inputs work */
        System.out.println("Please enter Ingredient name.");
        String inputName = in.nextLine();
        System.out.println("Please enter Ingredient measurement type.");
        String inputType = in.nextLine();
        System.out.println("Please enter Ingredient amount");
        double inputAmount = in.nextDouble();

        Ingredient inputIngredient = new Ingredient(inputName,inputType,inputAmount);
        System.out.println(inputIngredient.getName() + "- " + inputIngredient.getAmount() + " " + inputIngredient.getMeasurement());

        System.out.println("Please enter Ingredient name.");
        inputName = in.nextLine();
                /* ^ the input above does not work, but the ones below do work */
        System.out.println("Please enter Ingredient measurement type.");
        inputType = in.nextLine();
        System.out.println("Please enter Ingredient amount");
        inputAmount = in.nextDouble();

        inputIngredient.setAmount(inputAmount); 
        inputIngredient.setName(inputName); 
        inputIngredient.setMeasurement(inputType);
        System.out.println(inputIngredient.getName() + "- " + inputIngredient.getAmount() + " " + inputIngredient.getMeasurement());
    }

}

问题是您正在使用:

double inputAmount = in.nextDouble();
它不仅读取您的第一个输入量,而且将回车传递到下一个
readLine
语句

解决方案是首先使用回车符:

double inputAmount = Double.parseDouble(in.nextLine());