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循环中的最后两个条件,但我找不到错误。
答案 0 :(得分:3)
当您使用OR
时,您正在使用逻辑AND
运算符(您希望所有满足条件,而不仅仅是至少其中一个它们)。
AND
使用&&
(!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])
:
for(int i=0; i <latArray.count; i++)
{
//annotation.coordinate.latitude
//annotation.coordinate.longitude
//compare your latitude and longitude values and change the image accordingly.
}
答案 1 :(得分: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]) {