簡體   English   中英

&&條件作為|| 在c中執行while循環

[英]&& condition working as || in do while loop in c

AND&& )條件在此代碼中計算為OR|| )。 例如,當用戶輸入數字67時 ,輸出為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條件。 輸入67 ,當max12時, max%a計算結果為0 此時, max%a != 0計算結果為falsefalse && true == false ), max%a != 0 && max%b != 0計算結果為false ,並且循環退出。 但是, max%a != 0 || max%b != 0 max%a != 0 || max%b != 0計算結果為truemax%b5max12b7false || true == true ),因此循環繼續。

我會改變do {..} while (...); 循環到:

while (1)
{
   max++;
   if ( max%a == 0 && max%b == 0 )
   {
      break;
   }
} 

至少對我來說,這更容易理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM