2013-09-25 2 views
1

그래서이 간단한 코드는 java에 있습니다. 그러나 "프로그램을 다시 사용"하려고 시도했을 때 코드에 쓰여있는대로은 항상 첫 번째 항목을 건너 뜁니다 을 입력하십시오. 이 문제를 어떻게 해결할 수 있습니까? nextInt()가 줄 바꿈을 소비하지 않기 때문에,반복 후 줄 건너 뛰기

import java.util.Scanner; 
public class Try{ 
public static void main(String args[]){ 
    Scanner sc=new Scanner(System.in); 
    int salary; 
    String name, perform; 
    int choice = 1; 
    do{ 
     System.out.println("Enter your name:");  
     name=sc.nextLine(); 
     System.out.println("Enter your performance:"); 
     perform=sc.nextLine(); 
     System.out.println("Enter your salary:"); 
     salary=sc.nextInt(); 

     System.out.println("Name: "+name); 
     System.out.println("Performance: " + perform); 
     System.out.println("Salary:" + salary); 

     System.out.println("Do you want to use the program again?\n[1]Yes\n[2]No"); 
     choice=sc.nextInt(); 
    }while (choice < 2); 
} 
} 

답변

6

당신은 nextInt()sc.nextLine()를 사용해야합니다 (꽵 달리()) :

여기에 코드입니다. 따라서 첫 번째 반복 이후 루프의 시작 부분에서 항상 대기하는 추가 줄 바꿈이 있습니다.

1

사용

salary=Integer.parseInt(sc.nextLine()); 

choice = Integer.parseInt(sc.nextLine()); 

대신 당신은 또한 정수 이외의 입력을 방지하기 위해 try{} catch(...) 블록으로 그 라인을 포장 고려할 필요가 sc.nextInt();

사용

.