我很难理解这个说法:
while (a && b) {
a > b ? a %= b : b %= a;
}
它到底在做什么?可以将其转换为if语句吗?
最佳答案
让我们将其分为几部分:
while (a && b) {
}
这意味着,当
a
和b
是“真实的”值(在这种情况下,不是0
)时,循环将继续:a > b ? a %= b : b %= a;
这是一个三元运算符:
x ? y : z
如果
x
评估为true,则执行y
。如果x
的结果为false,则执行z
。因此,在这种情况下,如果
a > b
为true,a %= b
将运行。 a %= b
是a = a % b
的简写。如果
a > b
为假,b %= a
将运行。同样,b %= a
是b = b % a
的简写。因此,循环将一直运行,直到
a
或b
等于0。关于javascript - 我很难理解这个说法:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31777002/