2013-03-05 2 views
2

이 프로그램에서는 CarOrder 클래스에서 2 개의 객체를 미리 값으로 만듭니다. 그 다음 사용자에게 또 다른 2 세트의 값을 물어보고 2 개의 더 많은 오브젝트를 만듭니다. 불행히도 첫 번째 세금 상태를 입력 한 후 사용자가 두 번째 구매자에 대한 값을 입력하도록하지 않습니다. 이 질문을 무작위로 건너 뛰는 이유는 무엇입니까?내 프로그램에서 사용자가 하나의 변수에 값을 입력하는 것을 건너 뜁니다.

public static void main(String[] args) 
{ 
    Scanner keyboard = new Scanner(System.in); 
    CarOrder speedy = new CarOrder("Speedy Rental", "Mini Cooper", 22150, 15, true); 
    CarOrder zip = new CarOrder("Zip Car Co.", "Ford Fusion", 27495, 6, true); 

    System.out.println("Enter Buyer: "); 
    String buyer1 = keyboard.nextLine(); 
    System.out.println("Enter the type of car being purchased: "); 
    String car1 = keyboard.nextLine(); 
    System.out.println("Enter the cost of this purchase: "); 
    double cost1 = keyboard.nextDouble(); 
    System.out.println("Enter quantity of cars being purchased: "); 
    int quantity1 = keyboard.nextInt(); 
    System.out.println("Enter tax status: "); 
    boolean tax1 = keyboard.nextBoolean(); 

    System.out.println("Enter Buyer: "); 
    String buyer2 = keyboard.nextLine(); 
    System.out.println("Enter the type of car being purchased: "); 
    String car2 = keyboard.nextLine(); 
    System.out.println("Enter the cost of this purchase: "); 
    int cost2 = keyboard.nextInt(); 
    System.out.println("Enter quantity of cars being purchased: "); 
    int quantity2 = keyboard.nextInt(); 
    System.out.println("Enter tax status: "); 
    boolean tax2 = keyboard.nextBoolean(); 

    CarOrder state = new CarOrder(buyer1, car1, cost1, quantity1, tax1); 
    CarOrder it = new CarOrder(buyer1, car2, cost2, quantity2, tax2); 

    System.out.println("Chicago Car Wholesalers"); 
    System.out.println("Oct. 30th, 2012"); 
    System.out.println("New Car Order Report"); 

} 

}

+1

"건너 뛰기"란 의미가 명확하지 않습니다. 무엇을 타이핑하고 있으며 결과는 무엇입니까? –

+0

세금 상태를 입력 한 후 Enter 키를 누르십니까? – JohnD

답변

1

은 아마 "를"만들 때 잘못된 구매자를 사용하고, 그것을 건너 뛰는 아닙니다. 다음을 자세히 확인하십시오.

CarOrder state = new CarOrder(buyer1, car1, cost1, quantity1, tax1); 
CarOrder it = new CarOrder(buyer1, car2, cost2, quantity2, tax2); // <-- This should be buyer2 
+0

이 모든 것은 서브 루틴이 필요하다는 사실을 말해줍니다. "GetCarOrderFromInput()"과 같은 것 – pamphlet

3

keyboard.nextBoolean()은 부울 값만 읽습니다. 이제 keyboard.nextLine()으로 계속 읽을 때 을 입력하십시오. 키를 입력하십시오 (이는 입니다. 당신이 말하는 부분은입니다).

두 번째 구매자에게 질문 한 후 keyboard.nextLine();을 추가해야합니다.

3

나는 nextBoolean()이 부울을 소비하고 있지만 행의 끝을 남기고 있다고 생각한다. nextLine()은 입력으로 소비한다. 따라서 두 번째 구매자를 묻기 전에 keyboard.nextLine()을 추가하십시오.

관련 문제