#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
留言列表