此代码中的AND
(&&
)条件评估为OR
(||
)。例如,当用户输入数字 6 和 7 时,输出 12 但是当我用{{替换&&
时1}}输出 42 。
||
答案 0 :(得分:3)
不,&&
条件正在作为and
条件工作,正如它应该的那样。当您输入6
和7
时,max%a
会在0
为max
时评估为12
。此时max%a != 0
评估为false
(false && true == false
),max%a != 0 && max%b != 0
评估为false
,您的循环退出。但是,对于max%a != 0 || max%b != 0
true
和max%b
5
,max
评估为12
b
为7
},false || true == true
),所以循环继续。
答案 1 :(得分:0)
我会将do {..} while (...);
循环更改为:
while (1)
{
max++;
if ( max%a == 0 && max%b == 0 )
{
break;
}
}
至少对我来说,这更容易理解。