判斷式

如果今天颱風假,我就在家耍廢;否則我還是得來上課。

在程式內為了運用各式各樣的狀況,判斷式這樣東西的存在是非常重要的。 為了應付這種狀況,C 語言理所當然地也提供了很多條件判斷式。

if條件判斷

最為基礎的則是if條件判斷,他的基本語法如下:

if(條件){ do1; } else{ do2; }

所以如果拿我們最上面案例的話就會變成

if(放颱風假){ 在家耍廢; } else{ 乖乖去上課; }

當然在必要時刻其實不一定有if就要有else 我們也可以只有一個if即可,例如:

if(放颱風假){ 在家耍廢; }
有了最基礎的判斷式之後,其實可以做的事情就更多了 ## 練習 給大家一個實例的實作試試看: 假設今天輸入計概分數,分數>=60就顯示"及格",<60則顯示"當掉"。那該如何利用最簡單的if else判斷式去做呢?="" ###="" 解答=""
#include <stdio.h> int main(){ int score; scanf("%d",&score); if(score >=60){ printf("及格!"); } else{ printf("當掉!"); } return 0; }

巢狀if

if只能判斷一件事情嗎? 答案當然是否定的。 當我們需要去對某個條件做多重確認的時候,其實可以在一層if內在寫上另一層的if,例如:

if(放颱風假){ if(大風大雨){ 在家耍廢; } else{ 打球; } } else{ if(大風大雨){ 在家耍廢; } else{ 乖乖去上課; } }

以上面這個案例來看的話,他會先對"放颱風假"這件事情進行檢查,並根據條件的是否,進而去下一層檢查"大風大雨",才來決定要做哪些事情。

練習

計概分數本身如果分數 >100 或者 <0 這都是="" **不正常**="" 的分數,所以應該要顯示="" "不正常!"="" ,請大家根據前一個例子進行修改。="" 當輸入分數在合理範圍內(即0~100間)則="">=60 就顯示 "及格",<60 則顯示 "當掉"。

if elseif else條件式

假設今天的分數我想要讓他有更多的區間呢? 我想各位不會想要一直用一堆的if去把它包起來吧

而在C 語言裡面,除了基本的if else以外其實還有更多的用法。 也就是if elseif else的條件式,他的基本語法如下:

if(條件1){ do1; } else if(條件2){ do2; } else{ do3; }

而在進行條件檢查時他會依序從上開始檢查,如果所有條件都不符合才會執行至else內部

另外在中間部分的else if的數量其實是可以隨著程式的要求進而去做改變 也就是說可以有 零到多個 的else if在原先的if else條件判斷式中間。

練習

再次根據上一個練習,請大家練習看看,假設計概分數合理範圍為0~100,當計概分數本身不在合理範圍內(即>100或<0)則顯示"不正常!"。 在合理範圍內時,分數="">=90就顯示"A"、介於80~89間則顯示"B"、介於60~79間則顯示"C"、<60則顯示"當掉"。

switch條件判斷

switch是C 語言提供的另一種條件判斷方式,本身只能比較數值或字元 但是使用適當的話,它可比 if 判斷式來得有效率;switch 的基本語法如下:

switch (變數名稱或運算式) { case 符合的數字或字元: do1; break; case 符合的數字或字元: do2; break; default: do3; }

其中程式再執行時會先看看 switch 的括號,當中置放要取出數值的變數,取出數值之後,會與case 設定的數字或字元比對,符合則執行該case 以下的陳述句直到遇到break為止 才會離開switch,若case內都沒有相符的則會執行default內的內容,但是default本身並不一定要存在,這部分跟if else中,其實可以不要寫else是一樣的。

這樣講可能大家有點不可以很清楚的理解,假設今天有一個例子利用if elseif else寫法為:

int a; if(a == 1){ //do1 } else if(a == 2) { //do2 } else if(a == 3) { //do3 } else{ //do4 }

那其實也可以將其代換成switch case的寫法如下:

int a; switch(a) { case 1: //do1 break; case 2: //do2 break; case 3: //do3 break; default: //do4 }

當然if跟switch之間並不是具有那麼強烈的優異性,只是遇到複合條件時,switch 就幫不上忙了,你無法在 switch 中組合複雜的條件陳述。 這時後使用 if 就會是比較好的方式,理所當然的,if 與 switch 兩者也可以搭配著靈活使用。

練習

一樣的計概分數題目

假設計概分數合理範圍為0~100 當計概分數本身不在合理範圍內(即>100或<0)則顯示"不正常!" 在合理範圍內時「分數="">=90」就顯示 "A"、介於80~89間則顯示 "B"、介於60~79間則顯示 "C"、<60則顯示"當掉"。

大家是否能把它改成switch case的寫法呢?

results matching ""

    No results matching ""