具有多个逻辑运算符的三重条件 Do-While 循环
Triple Conditioned Do-While Loop With Multiple Logical Operators
我无法让下面的 do-while 循环在 Java 中工作。感谢您的帮助。
do{
//User enters a value for x
//User enters a value for y
}while(x==-1 && y==-1 || x==5 || y==10);
我想做的只是:
a) 如果 x 和 y 都是 -1 则终止循环
b) 如果 x 是 5 OR y 是 10 然后终止循环
你把问题看错了。你的循环将在你想停止的地方继续。
您只需执行以下操作并反转条件
do {
} while (!(x == -1 && y == -1 || x == 5 || y == 10));
public static void main (String[] args) {
System.out.println(conditionTesting(0, -1)); // true
System.out.println(conditionTesting(-1, -1)); // false
System.out.println(conditionTesting(5, -1)); // false
System.out.println(conditionTesting(-1, 10)); // false
System.out.println(conditionTesting(6, 9)); // true
}
public static boolean conditionTesting(int x, int y) {
return !(x == -1 && y == -1 || x == 5 || y == 10);
}
德摩根
如果你想用DeMorgan's Law来表示它,你可以使用以下步骤
¬((P ∧ Q) ∨ R ∨ S)
≡¬(P ∧ Q) ∧ ¬R ∧ ¬S
≡(¬P ∨ ¬Q) ∧ ¬R ∧ ¬S
所以你的最终翻译是
(x != -1 || y != -1) && x != 5 && y != 10
我无法让下面的 do-while 循环在 Java 中工作。感谢您的帮助。
do{
//User enters a value for x
//User enters a value for y
}while(x==-1 && y==-1 || x==5 || y==10);
我想做的只是:
a) 如果 x 和 y 都是 -1 则终止循环
b) 如果 x 是 5 OR y 是 10 然后终止循环
你把问题看错了。你的循环将在你想停止的地方继续。
您只需执行以下操作并反转条件
do {
} while (!(x == -1 && y == -1 || x == 5 || y == 10));
public static void main (String[] args) {
System.out.println(conditionTesting(0, -1)); // true
System.out.println(conditionTesting(-1, -1)); // false
System.out.println(conditionTesting(5, -1)); // false
System.out.println(conditionTesting(-1, 10)); // false
System.out.println(conditionTesting(6, 9)); // true
}
public static boolean conditionTesting(int x, int y) {
return !(x == -1 && y == -1 || x == 5 || y == 10);
}
德摩根
如果你想用DeMorgan's Law来表示它,你可以使用以下步骤
¬((P ∧ Q) ∨ R ∨ S)
≡¬(P ∧ Q) ∧ ¬R ∧ ¬S
≡(¬P ∨ ¬Q) ∧ ¬R ∧ ¬S
所以你的最终翻译是
(x != -1 || y != -1) && x != 5 && y != 10