C/C++

C 語言學習筆記 (五):if 條件判斷

學習書籍:C 語言學習手冊 第四版。作者: 洪維恩

這是一篇記錄自己學習 C 語言的過程,算是給自己看的筆記,所以這裡面的內容,是我整理書中我認為重要的部分,然後用自己的方式重新寫一遍,如果有圖,我會理解完,再自己畫出來,內容肯定會和課本上有出入,若有錯誤,或是理解錯的地方,希望能讓我知道。


通常一個程式中,根據情況可能產生好幾個分支,要選擇進入哪個分支,要透過 if 判斷式來進行選擇,就像人前往某個地方時,要思考該如何走,才能抵達最後目的地。而 if 判斷式就是讓 C 語言能夠做到選擇的敘述結構,我們稱此結構為「選擇性敘述」。

在之前介紹中,有提到如何進行格式化輸出與輸入,以及上一篇有整理出各種運算子的功用,其中「關係運算子」就是能讓程式,依使用者的選擇,做出相對應的動作。

if 敘述

st=>start: 開始
e=>end: 結束程式
op1=>operation: 敘述內容
op2=>operation: 其他敘述
cond=>condition: 條件判斷

st->cond
cond(yes)->op1->op2->e
cond(no)->op2->e
if (條件判斷)
{
    敘述內容;
}

if – else 敘述

st=>start: 開始
e=>end: 結束程式
op1=>operation: Yes敘述內容
op2=>operation: No敘述內容
op3=>operation: 其他敘述
cond=>condition: 條件判斷

st->cond
cond(yes)->op1->op3->e
cond(no)->op2->op3->e
if (條件判斷)
{
    敘述內容;
}
else
{
    敘述內容;
}

巢狀 if 敘述

st=>start: 開始
e=>end: 結束程式
op1=>operation: 內部敘述
op2=>operation: 外部敘述
op3=>operation: 其他敘述
cond1=>condition: 條件判斷1
cond2=>condition: 條件判斷2

st->cond1
cond1(yes)->cond2
cond2(yes)->op1->op3->e
cond2(no)->op2->op3
cond1(no)->e
if (條件判斷)
{
    if (判斷條件)
    {
        內部敘述內容;
    }
    外部敘述內容;
}

if – else if 敘述

st=>start: 開始
e=>end: 結束程式
op1=>operation: 敘述內容1
op2=>operation: 敘述內容2
op3=>operation: 敘述內容3
op4=>operation: 其他敘述
cond1=>condition: 條件判斷1
cond2=>condition: 條件判斷2
cond3=>condition: 條件判斷3

st->cond1
cond1(yes)->op1->op4->e
cond1(no)->cond2->op4->e
cond2(yes)->op2->op4->e
cond2(no)->cond3->op4->e
cond3(yes)->op3->op4->e
cond3(no)->op4->e
if (條件判斷)
{
    敘述內容1;
}
else if{
    敘述內容2;
}
else{
    敘述內容3;
}

條件運算子

條件運算子可以當作是簡潔版的 if – else 敘述。

條件判斷 ? 運算式1 : 運算式2

條件運算子的運算結果還可以存放至變數中。

變數名稱 = 條件判斷 ? 運算式1 : 運算式2

if (條件判斷)
{
    變數名稱 = 運算式1;
}
else
{
    變數名稱 = 運算式2;
}

switch 選擇敘述

st=>start: 開始
e=>end: 結束程式
op1=>operation: 敘述內容1
op2=>operation: 敘述內容2
op3=>operation: 敘述內容3
op4=>operation: 預設敘述
bk1=>operation: break;
bk2=>operation: break;
bk3=>operation: break;
cond1=>condition: 條件判斷 選擇值1
cond2=>condition: 條件判斷 選擇值2
cond3=>condition: 條件判斷 選擇值3
cond4=>condition: 條件判斷 default

st->cond1
cond1(yes)->op1->bk1->e
cond1(no)->cond2->e
cond2(yes)->op2->bk2->e
cond2(no)->cond3->e
cond3(yes)->op3->bk3->e
cond3(no)->cond4->e
cond4(yes)->op4->e
switch(條件判斷)
{
    case 選擇值1:
        敘述內容1;
        break;
    case 選擇值2:
        敘述內容2;
        break;
    case 選擇值3:
        敘述內容3;
        break;
    default:
        預設敘述;
}

goto 敘述

當程式執行到 goto 時,會無條件跳到指定標籤名稱後面。

標籤名稱:
    敘述內容;
goto 標籤名稱;

範例:

#include<stdio.h>
#include<stdlib.h>
int main(){
    int i=0, sum=0;
    start:
        i++;
        sum += 1;
        printf("%d",i);
        if(i<10){
            printf("+");
            goto start;
        }
        printf("=%d\n", sum);
    system("pause");
    return 0;
}

留下一個回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *