if(單一選擇敘述)就是當某個條件成立時,就去做下列執行條件,反之當條件不成立時,就不會做這些事,下面為示範。
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i;
int x;
printf("請輸入正數數值\n");
scanf("%d",&i);
printf("\n");
if(i>0) x=i;
printf("i = %d\n\n",i);
printf("x = %d\n\n",x);
}
圖1
if-else(雙向選擇敘述),在單一選擇敘述時當條件不成立時我們就無法執行,因此雙向選擇敘述就可以執行當條件不滿足時的動作,下面為示範。
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i;
int x;
printf("請輸入正數數值\n");
scanf("%d",&i);
printf("\n");
if(i>0)
{
x=i+1;
printf("i = %d\n\n",i);
printf("x = %d\n\n",x);
}
else printf("輸入錯誤%d",i);
}
圖2
圖3
如圖2所示,條件成立式會執行x=i+1,並將i與x的值印出
如圖3所示,利用if-else時在條件不成立時會執行else的動作將輸入的值印出,而不是執行if的動作
巢狀式選擇敘述為if-else 中在包含了if-else,一般常用於判斷上需要兩個以上的選擇條件時,雖然可用運算式來解決巢狀敘述,但因為這樣運算式會變得過於複雜,因此大部分還是會選擇巢狀敘述。
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i;
int x;
printf("請輸入介於10~100的數值\n");
scanf("%d",&i);
printf("\n");
if(i>10)
{
if(i>100)
{
x=i+1;
printf("超出範圍");
}
else
{
x=i-1;
printf("i = %d\n\n",i);
printf("x = %d\n\n",x);
}
}
else printf("超出範圍");
}
圖4
else-if並不是C語言的敘述,但它只是將if-else重新排序而已,因此在這並不會多做介紹。
switch-case(多向選擇敘述),除了用多個巢狀式if-else之外的選擇,多向選擇敘述可使程式碼看起來更清楚簡潔
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i;
int x;
printf("請輸入成績\n");
scanf("%d",&i);
printf("\n");
if((i>=0) && (i<=100))
{
switch(i%5)
{
case 1:
printf("第一組");
break;
case 2:
printf("第二組");
break;
case 3:
printf("第三組");
break;
case 4:
printf("第四組");
break;
case 0:
printf("第五組");
break;
}
}
else
{
printf("輸入錯誤");
}
}
圖5
圖6
Day3就到這啦BYE~