我很难理解这个说法

我很难理解这个说法

我很难理解这个说法:

while (a && b) {
a > b ? a %= b : b %= a;
}


它到底在做什么?可以将其转换为if语句吗?

最佳答案

让我们将其分为几部分:

while (a && b) {

}


这意味着,当ab是“真实的”值(在这种情况下,不是0)时,循环将继续:

a > b ? a %= b : b %= a;


这是一个三元运算符:x ? y : z

如果x评估为true,则执行y。如果x的结果为false,则执行z

因此,在这种情况下,如果a > b为true,

a %= b将运行。 a %= ba = a % b的简写。

如果a > b为假,

b %= a将运行。同样,b %= ab = b % a的简写。

因此,循环将一直运行,直到ab等于0。

关于javascript - 我很难理解这个说法:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31777002/

10-13 07:54