我无法理解这个声明:
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/