2013-09-25 124 views
-1

我有一個while循環,裏面有if語句。 if語句正常工作,直到我添加一個else語句。問題在於,在運行程序時,即使滿足if語句內的條件,它也會直接跳轉到else語句。我似乎無法找到問題,並希望有人能夠幫助我......If-else語句在while循環內不起作用

我的代碼部分:

while(!filen.endOfFile()) { 
    linje = filen.inLine(); 
    splitt = linje.split(","); 

    if (linje.toUpperCase().contains(fugl.toUpperCase())) { 
     System.out.println(splitt[0] + ": "); 
     System.out.println(splitt[1]); 
     System.out.println(splitt[2]); 
     System.out.println(splitt[3]); 

    } else { 
     System.out.println("Write something here..."); 
    } 
} 

編輯:我試圖把if語句爲真,現在它顯示結果,但else語句添加在底部。我不明白爲什麼會發生這種情況?

+4

'linje'和'fugl'的值是什麼? – rgettman

+0

執行「if」和「else」不可能。你確定你沒有看到來自兩個不同迭代的輸出嗎? –

+0

你能向我們展示一些示例輸入嗎? – A4L

回答

1

通常發生這種情況是因爲源與二進制文件不同步。嘗試清理您的項目,併爲您的IDE重建它。或者,也許你可以從IDE中刪除它並再次導入。

+3

這應該是一個評論... – jlordo

0

即使if條件滿足,JVM也沒有理由去執行else塊。除非條件結果返回錯誤值或代碼編譯不正確。

因此請嘗試編譯類&再試一次。雖然它沒有按預期工作,然後在if條件中輸入一個絕對值「true」,編譯類&檢查它是否在塊執行時執行。

+0

裏面的if代碼我會把真正的價值? – user2795095

+0

在我的評論中,你可以看到... – woliveirajr

+0

我把if設爲true,現在它打印if語句,但仍然是else語句。我不明白爲什麼... – user2795095

0

你可以嘗試這樣的事情。

if (true) { 
    System.out.println("Condition Satisfied"); 
} else { 
    System.out.println("Condition not Satisfied"); 
} 

如果你編譯類正確,然後它會執行「條件成立」在控制檯上的消息每一次。

0

避免總是在打印中的else語句。您必須刪除else語句。如果還有其他條件需要搜索,請只添加其他條款。