Java 在迭代后跳过一行

Java 在迭代后跳过一行,java,iteration,Java,Iteration,我用java编写了这个简单的代码。但是,当我试图再次使用代码中编写的程序时,它总是跳过第一个条目,即输入名称。我该如何解决这个问题 代码如下: 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 choic

我用java编写了这个简单的代码。但是,当我试图再次使用代码中编写的程序时,它总是跳过第一个条目,即输入名称。我该如何解决这个问题

代码如下:

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);
}
}
您需要在nextLine之后使用sc.nextLine,因为nextLine不像nextLine那样使用换行符。因此,在第一次迭代后的循环开始时,总会有一个额外的换行符等待。

您需要在nextLine之后使用sc.nextLine,因为与nextLine不同,nextLine不会使用换行符。因此,在第一次迭代后的循环开始时,总会有一个额外的换行符等待

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

而不是使用sc.nextInt

您还需要考虑用Test{{} catch来包装这些行…块以避免整数以外的输入。

使用

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

而不是使用sc.nextInt

您还需要考虑用Test{{} catch来包装这些行…块以避免整数以外的输入