#include<stdio.h>

#include<stdlib.h>

 

int main(){

      int num;

      printf("blablablabla.");

 

      do{                                   //作區塊裡面的code

           scanf("%d",&num);       

           printf("You can try again !! \n");

          }

      while(num%2==0);      // 當變數num 被2除 餘0的時候代表為真(true)   thus,從do迴圈開始再執行一次,直到                                           // 輸入數字被2除  餘數不為0 為假(false)

       printf("That digit %d  you set is an odd num.",num);

}

 

--------------------------------------------------------------------------------------------------------------------

以下是另外一種判斷式的寫法

do{

     scanf("%d",&num);

     printf("You can try again !! \n");

     }

while(!(num&=1));

printf("this digit %d is an odd num",num);

 

不過這是網路上看到的,目前還搞不懂為什麼

等以後弄懂了再慢慢modify

 

 ----------------------------------------------------------------------

以下還有個混淆視覺的寫法;

do{

     scanf("%d",&num);

    }

while(num%2);                                //   num取2的餘數,假設輸入奇數會餘1,那麼系統就會把判斷式裡面的1

printf(" what is this? ");                    //   當作為真(true)  那麼這樣就會跟原case的問題顛倒了.

 

因此,可以改寫成:

do{

     scanf("%d",&num);

    }

while(!(num%2));          // 加一個金嘆號 作反向邏輯運算,再把運算式括號括起來

printf(" what is this? ");

 

 

備忘錄: 先做do 裡面的code   

           再經由while判斷式去判別是否要繼續執行下一次do裡面的code


arrow
arrow
    全站熱搜

    Brian 發表在 痞客邦 留言(0) 人氣()