2013-10-17 98 views
0

我有一個簡單的問題,我在舊帖子中找不到任何信息。它與我的while循環有關。我希望我的while循環在用戶輸入回車鍵時結束,即當患者ID爲空時。 while循環終止,如果我輸入第一輪輸入,但如果我輸入大量的信息並運行循環幾次擊中輸​​入不會結束循環,當它再次請求患者ID。這是代碼。我爲while()嘗試了許多不同的變體。感謝您的幫助!當用戶輸入輸入密鑰時,循環未閉合?

//Obtain Patient Id 
    System.out.print("Enter patient: "); 
    patientID= kb.next(); 

    //While patient id is not empty 
    while(patientID.length()==0) { 

    // Obtain patient ID 
    System.out.print("\nEnter patient: "); 
    patientID=kb.next(); 

    //End While 
+0

kb是掃描器對象嗎?然後請發佈創建它的代碼以獲得更多信息 –

回答

1

有一些問題。您需要使用nextLine()來讀取一行。 next()只是讀取一個令牌。

patientID=kb.nextLine(); 
//While patient id is not empty 
while(patientID.length()!=0) { 

// Obtain patient ID 
System.out.print("\nEnter patient: "); 
patientID=kb.nextLine(); 

} 

while循環還應該讀取「患者ID不爲空」。在循環開始之前,您需要將patientID設置爲非空值,正如我在此處所做的那樣。

+0

我解決了使用next()的問題並解決了while問題,但是當我運行它時,會在一次自動運行後終止while循環? –

+0

@TravisMiller Mh邏輯可能關閉。嘗試將其設置回'=='。 – hexafraction

+0

當我將它設置爲==時,它會終止一次輸入患者ID。我做了小提琴並將其恢復爲!=,並在「輸入患者ID」時將nextLine()更改回內側的下一個()並且它已經運行,但是當我點擊ID請求時仍然不會關閉。 –