2012-08-24 2 views
0

테스터 파일에서 사용자로부터 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()); 
    } 

} 

답변

1

문제는 당신이 사용하고 있다는 점이다 : 첫 번째 입력 양을 읽어하지만 다음 readLine 문에 캐리지 리턴을 전달뿐만 아니라

double inputAmount = in.nextDouble(); 

여기 내 코드입니다.

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

용액 제 캐리지 리턴을 소비하는