gpt4 book ai didi

java - 无法使用 || 退出循环运算符(operator)

转载 作者:行者123 更新时间:2023-11-30 07:46:28 24 4
gpt4 key购买 nike

您能解释一下为什么当我在循环中使用短路或时我的代码“挂起”吗?

我编写了一个代码来计算两个整数的最大公因数:

  int a = 9;
int b = 6;

while (a != 0 || b != 0) //here is the problem
{
if (a >= b)
{
a = a - b;
}
else
b = b - a;
}
if (a == 0) System.out.println(b);
else System.out.println(a);

当我使用 || 时运算符,在我看来合乎逻辑的是,我的程序的运行永远不会停止。然而,当我使用 && 运算符时,这对我来说似乎不合逻辑,但它工作得很好。你能解释一下为什么我不能使用 || 退出循环吗?运算符?

最佳答案

让我们一步步检查输出(每一步对应一个循环):

第 1 步:

a >= b is true so a is now equal to 3

第 2 步:

b >= a is true so b is now equal to 3

第 3 步:

a >= b is true so a is now equal to 0

我们就到此为止吧。当 a 或 b 不等于 0 时,while 循环将继续运行。在所有后续循环中,b 将被设置为 3 - 0 并且这些值永远不会改变 - 它将无限运行。如果您的目标是在 1 值达到 0 时停止循环,则需要 && 语句。

关于java - 无法使用 || 退出循环运算符(operator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33863471/

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