[英]&& condition working as || in do while loop in c
AND
( &&
)條件在此代碼中計算為OR
( ||
)。 例如,當用戶輸入數字6和7時 ,輸出為12但是當我用||
替換&&
時 輸出是42 。
#include<stdio.h>
int main()
{
int a,b,max,lcm;
printf("Enter 2 numbers: ");
scanf("%d %d", &a, &b);
if(a>b)
{
max=a;
}
else
{
max=b;
}
do
{
max++;
} while(max%a!=0 && max%b!=0);
lcm=max;
printf("LCM of %d and %d is %d\n", a,b,lcm);
return 0;
}
不, &&
條件正如它應該的那樣起作用and
條件。 輸入6
和7
,當max
為12
時, max%a
計算結果為0
。 此時, max%a != 0
計算結果為false
( false && true == false
), max%a != 0 && max%b != 0
計算結果為false
,並且循環退出。 但是, max%a != 0 || max%b != 0
max%a != 0 || max%b != 0
計算結果為true
( max%b
為5
, max
為12
, b
為7
, false || true == true
),因此循環繼續。
我會改變do {..} while (...);
循環到:
while (1)
{
max++;
if ( max%a == 0 && max%b == 0 )
{
break;
}
}
至少對我來說,這更容易理解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.