上一篇介紹了二維陣列的概念,基本上陣列的使用方法都不會差太多,應該不算太難理解?
這次我們來介紹程式設計中很重要的--「if條件式」!
在日常生活中大家一定都有做過選擇,不管是參考商品價格來考慮要不要購買,或是交友軟體以條件來篩選交友對象,甚至是考卷不會寫於是擲骰子寫答案,基本上我們都做過各式各樣的選擇,但這樣的「條件選擇」在程式中也同樣被需要。
通常我們會依照資料的內容,不管是分數高低、年齡大小、興趣,來對資料進行不同的處理後輸出結果。
所以這時「if & else if & else條件式」就是很好用的語法了,如同以下例子:
if (score == 100){
printf("A++\n");
}
else if (score >= 95){
printf("A+\n");
}
else if (score >= 90){
printf("A\n");
}
else if (score >= 80){
printf("B\n");
}
else if (score >= 70){
printf("C\n");
}
else if (score >= 60){
printf("D\n");
}
else {
printf("F\n");
}
當我們需要依照學生分數,給予不同結果時,我們會設下許多條件就像以上的應用方法,而它的流程則像是這樣的:
(1) 層層執行:條件式的規則一定要記住,不一定要鉅細靡遺但一定由鬆而緊,因為程式是由上而下一行行執行的,條件式也是由上而下層層判斷的,所以上面已經基本篩選過的情況下,其下的條件不一定要列的極細。
(2) 唯有條件為真(true)時,條件內的區塊才被執行
(3) 執行完符合條件的區塊後,會跳出整個條件式外,不會再繼續執行判斷。
(4) if & else if & else?
a. 只有if
if (k == 1){
printf("Bingo!\n");
}
b. 只有if、else
if (k == 1){
printf("Bingo!\n");
}
else {
printf("Noting.\n");
}
c. 只有if、else if
if (k == 2){
printf("Nice!\n");
}
else if (k == 1){
printf("Cool!\n");
}
d. if、else if、if混合
if (k == 3){
printf("Perfect!\n");
}
else if (k == 2){
printf("Great!\n");
}
else if (k == 1){
printf("Cool!\n");
}
else{
printf("miss.\n");
}
e. 使用邏輯:
開頭的判斷式一定為if,而後面是否有更多條件則看情況使用else if、else,但在使用else的情況該判斷式一定壓尾,雖然不一定構成語法錯誤但關乎執行邏輯。
因為else不限定任何條件,且前面有提到只要整個if條件式中,任意條件符合且進入區塊執行完,則會直接跳出整個條件式外繼續執行,倘若else之後還有else if判斷式,則永遠不可能被執行。
#include <stdio.h>
#include <string.h>
int main(void)
{
int score;
printf("input your score: %d", &score);
scanf("%d", &score);
if (score == 100){
printf("A++\n");
}
else if (score >= 95){
printf("A+\n");
}
else if (score >= 90){
printf("A\n");
}
else if (score >= 80){
printf("B\n");
}
else if (score >= 70){
printf("C\n");
}
else if (score >= 60){
printf("D\n");
}
else {
printf("F\n");
}
return 0;
}