为什么我在获取字符串输入时得到nextLine()的异常,而不是next()的例外



最近我开始编程,不知道如何处理我遇到的异常在取得CCD_ 1的字符串输入的同时进行接收。但是,该代码适用于op.next()为什么它会给我这样的例外?

import java.util.*;
import java.util.Scanner;
import java.io.*;
public class Employee_Class_object {

// Fields
private int emp_no;
private String na; 
private double salary;
// method 
public void getData()
{
Scanner op = new Scanner(System.in);
System.out.println("Enter the emoployee no , Name and salary ");
emp_no = op.nextInt();
na  = op.nextLine(); // Showing exception for nextLine() and not for op.next()
salary = op.nextDouble();
}
public void putData()
{
System.out.println("Employee no = " + emp_no);
System.out.println("Employee name = " + na);
System.out.println("Employee Salary  = " + salary);
}
public static void main (String args[])
{
Employee_Class_object a = new Employee_Class_object();
Employee_Class_object  b = new Employee_Class_object();
a.getData();
a.putData();
}
}

异常的可能原因是您仍在读取第一行(在读取getData((方法第4行的emp_no之后(。在阅读下一行之前,请将阅读器移到下一行。类似这样的东西:

public void getData()
{
Scanner op = new Scanner(System.in);
System.out.println("Enter the emoployee no , Name and salary ");
emp_no = op.nextInt();//after reading this, you're still at the same line.
op.nextLine();// Now you are on the NEXT line.
na  = op.nextLine();
salary = op.nextDouble();
}

相关内容

最新更新