javascript - 我无法理解这个声明 :

标签 javascript while-loop

我无法理解这个声明:

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/

相关文章:

c++ - while 循环不等于 std::queue 大小

PHP 从数组中获取最高值(从 SQL 选择)

javascript - Firebase - 检查密码

javascript - 使用 json 数据构建 C3.js 图形

javascript - 如何使用javascript将字符串中的电话号码和时间分开?

javascript - 在Javascript中将数字连接为字符串

c - While 循环未正确迭代

javascript - $.getJSON 解析器错误尝试调用 API

java - 无法让我的 while 语句正常工作

c - 为什么“while(!feof(file))”总是错误的?