是否有人知道爲什麼我的nextLine()
在下面的代碼中的for循環之後無法工作?它總是跳過nextLine()
並直接轉到if
聲明。nextLine()在for循環後不工作
int[] a = new int[3]
for(int i=0; i<3;i++)
{
a[i] = nextInt();
}
String b = nextLine();
if(b == "go")
{
.......
}
else
{
.....
}
是否有人知道爲什麼我的nextLine()
在下面的代碼中的for循環之後無法工作?它總是跳過nextLine()
並直接轉到if
聲明。nextLine()在for循環後不工作
int[] a = new int[3]
for(int i=0; i<3;i++)
{
a[i] = nextInt();
}
String b = nextLine();
if(b == "go")
{
.......
}
else
{
.....
}
什麼意思是不工作?你的意思是說nextLine()方法沒有被調用。根據您粘貼的代碼,它將100%地調用nextLine()方法。
涉及nextLine
的聲明應始終在那裏執行(除非拋出異常)。您不會顯示nextLine
的實施。你確定它沒有執行嗎?分散的幾個System.err.println("blah")
可能會有所幫助。
順便說一句:字符串比較幾乎可以肯定是b.equals("go")
。如果b
可能是null
,請爲此明確檢查或編寫表達式"go".equals(b)
。
我猜你可能正在做的是要求用戶輸入整數,然後按回車。當它解析整數時,它只是解析和刪除整數。但他們所壓的換行符當然還在流中。然後,當你詢問nextLine()
時,它會立即返回,因爲流中已經有一行(以換行符結尾的整數)。也許你實際上期望nextLine()
在整數進入後等待另外一行,但那不是發生了什麼。這是正確的嗎?
我認爲沒有理由發生這種情況,需要更多的細節。你確定你正在運行的代碼與你向我們展示的源代碼是否相同? – 2009-04-30 09:44:26