[英]while loop conditions java
String userGuessParameters = "a,b";
while (!Character.isDigit(userGuessParameters.charAt(0)) ||
!Character.isDigit(userGuessParameters.charAt(2)) ||
userGuessParameters.length() != 3 ||
(int)(userGuessParameters.charAt(0)) >= parameters[0] ||
(int)(userGuessParameters.charAt(2)) >= parameters[1]) {
System.out.print("Mida kaevame (rida, veerg): ");
userGuessParameters = userInput.nextLine();
userGuessParameters = userGuessParameters.replaceAll(" ", "");
}
我正在嘗試檢查while循環中是否滿足所有必需條件。 parameters
是用戶以數組形式輸入的內容。 假設parameters = [4, 4]
(參數用於創建4x4映射)。
我需要userGuessParameters
是:
但是由於某種原因,循環永遠不會退出。 我幾乎可以肯定這是由於while循環中的最后兩個條件,但是我找不到錯誤。
當您應該使用AND
時,您正在使用邏輯OR
運算符(您希望滿足所有條件,而不僅是其中至少一個條件 )。
使用AND
的Java表示法 &&
:
(!Character.isDigit(userGuessParameters.charAt(0)) &&
!Character.isDigit(userGuessParameters.charAt(2)) &&
userGuessParameters.length() != 3 &&
(int)(userGuessParameters.charAt(0)) >= parameters[0] &&
(int)(userGuessParameters.charAt(2)) >= parameters[1])
嘗試使用&&
代替||
像這樣:
while (!Character.isDigit(userGuessParameters.charAt(0)) && !Character.isDigit(userGuessParameters.charAt(2))
&& userGuessParameters.length() != 3 && (int)(userGuessParameters.charAt(0)) >= parameters[0]
&& (int)(userGuessParameters.charAt(2)) >= parameters[1]) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.