java中使用nextline出現的問題

在Scanner類中有nextInt、nextDouble、nextfloat等這種掃描輸入區中輸入的數字
還有nextLint、next、掃面輸入區中輸入的字符串字符

初學Java,遇到了這樣的問題,調用了nextInt()方法,接着直接調用了nextLine()方法,控制檯輸出錯誤,將接下來的兩行輸出語句直接書輸出

PostGraduate Pg = new PostGraduate();
		Pg.set姓名();
		Pg.set學號();
		Pg.set導師姓名();
		Pg.set研究方向();


public void set學號() {
		System.out.print("請輸入學號:");
		this.學號 = sender.nextInt();
	}


public void set導師姓名() {
		System.out.print("請輸入導師姓名:");
		this.導師姓名 = sender.nextLine();
		
	}

這是三個方法在執行完輸入學號之後,控制檯直接輸出

在這裏插入圖片描述

經過擦資料與詢問,終於知道,nextInt只將緩存區中的數字提取並執行響應的賦值操作,但是不會將用戶輸入的回車取出,也就是當程序執行到set導師姓名的時候,緩衝區的回車賦值給了對應的變量,因此並不會讓用戶輸入而是直接執行下一個方法;
解決辦法:

public void set導師姓名() {
		System.out.print("請輸入導師姓名:");
		sender.nextLine();
		this.導師姓名 = sender.nextLine();
		
	}

1.先掃描一遍輸入區然後正式輸入;
2.改用next當作輸入接口;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章