1. 程式人生 > >Java:為何不等輸入就跳過了?

Java:為何不等輸入就跳過了?

有BUG的程式碼:

 public Integer getIntegerNumber(String tips) {
        System.out.print(tips);
        return input.nextInt();
    }
 
  
    public String getString(String tips) {
        System.out.print(tips);
        return input.nextLine();
    }
 

 public void addinfo() {
    	Vip s=new Vip();
    	s.vipName= getString("請輸入姓名:\n");
    	s.vipId=getString("請輸入身份證號:\n");
    	s.vipAge=getIntegerNumber("請輸入年齡:\n");
    }

for(int i=0; i<3;i++)
{
     Vipinfo.addinfo();
}

當我想連續輸入多個vip使用者的資訊時,卻發現,不等我輸入就跳過了:

查閱資料後發現問題所在:

in.nextLine();不能放在in.nextInt();程式碼段後面 否則in.nextLine();會讀入"\n"字元,但"\n"並不會成為返回的字元。

解決方法:

把程式碼中的nextLine();換成next();便可以解決“跳過”問題