gpt4 book ai didi

Java - AND 运算符不起作用

转载 作者:行者123 更新时间:2023-12-01 16:52:54 26 4
gpt4 key购买 nike

这里是新手,
我有两个变量通过 .Random 生成随机数。我希望它们继续滚动,直到两个变量同时生成两个不同的值。因此,我将 while 循环与 && 结合使用来实现此目的。据我了解,如果我错了,请纠正我,行 while ((diceRolled1 != 5) && (diceRolled2 != 4)) 翻译为,继续滚动,直到 diceRolled1 不等于 5 并且 diceRolled2不等于 4。但如果任一变量与其值匹配(diceRolled1 = 5 OR diceRolled2 = 4),程序就会结束。这不是 && 应该做的,对吧?我已经运行了代码大约 10 次,但没有一次它同时生成 5 和 4。

我还尝试了==两侧和任意一侧,但在这种情况下程序根本没有运行,也没有给出任何错误。

我们将非常感谢您的帮助。谢谢

import java.util.Random;
import static java.lang.System.out;

public class DiceRoller {
public static void main(String[] args) {
Random dice1 = new Random();
Random dice2 = new Random(); //Removing this doesn't work either

int diceRolled1 = 0;
int diceRolled2 = 0;

while ((diceRolled1 != 5) && (diceRolled2 != 4)) { //& didn't work either
diceRolled1 = dice1.nextInt(6) + 1;
diceRolled2 = dice2.nextInt(6) + 1;
out.println(diceRolled1 + " " + diceRolled2);
}
out.println("Program ends");
}
}

最佳答案

你的逻辑不正确。只要两个值不匹配,循环就会继续 - 一旦一个值匹配,循环就会退出。我们可以反转您的逻辑来显示这一点:

while (!(diceRolled1 == 5 || diceRolled2 == 4)) {

这在逻辑上等同于你所拥有的。

你想要的是这样的:

while (diceRolled1 != 5 || diceRolled2 != 4) {

表示“当任何变量没有所需值时继续”

关于Java - AND 运算符不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36505190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com