2013-03-25 34 views
1

String userAge;休息;線路不可達

while(true){ 
     System.out.println("Enter user Age"); 
     userAge = scInput.nextLine(); 
      if(tryParseInt(userAge)){ 
      return userInfo[row][1] = userAge; 
      break; 
      }else{ 
       System.out.println("Please Enter an integer."); 
       } 
    } 

這裏初學者,名字叫里根。

我的問題是我的代碼由於「break」而不能編譯。它說這是一個無法訪問的代碼。我覺得我在這裏做錯了事,我幾乎可以肯定它與變量類型有關......不知道如何做到這一點。 這是一個調用用戶年齡的方法。

我的目標是通過我的tryParseInt()方法傳遞一個字符串來測試並確保輸入數據是一個整數,但將其保留爲字符串類型變量。

我創建了一個多維的字符串數組來存儲用戶的數據。即名稱;年齡;位置。

回答

10

breakreturn語句無法訪問之後的語句,因爲該函數在達到break語句之前退出。刪除break;並且你的代碼應該被編譯。

+0

我已經刪除了休息時間。代碼運行,但是它在測試我的條件之前會貫穿整個循環。理想情況下,如果我的條件爲假,我希望它顯示else語句。 – 2013-03-25 02:50:54

+0

如果你想循環你的條件,那麼不要在循環中使用return或break語句。當下一次程序要求輸入時,輸入一些字符,你應該看到你的其他條件正在執行。 但請記住,在此循環中刪除中斷或返回使其成爲一個無限循環! – 2013-03-25 04:27:44

0
while(true){ 
     System.out.println("Enter user Age"); 
     userAge = scInput.nextLine(); 
      if(tryParseInt(userAge)){ 
      return userInfo[row][1] = userAge; 
      //you don't need break here because return at above line will make function to exit - break the loop 
      //break; 
      }else{ 
       System.out.println("Please Enter an integer."); 
       } 
    } 
0

法官的輸入是否是一個整數:

Scanner scanner = new Scanner(System.in); 
try { 
    userInfo[row][1] = scanner.nextInt()); 
    return; 
} catch (InputMismatchException e) { 
    System.out.println("Please enter a integer."); 
} 
finally{ 
    scanner.close(); 
} 

,並在你的代碼,打破一句返回一句之後,所以它不可達。