Presentation is loading. Please wait.

Presentation is loading. Please wait.

C/C++基礎程式設計班 控制敘述 講師:林業峻 CSIE, NTU 3/7, 2015.

Similar presentations


Presentation on theme: "C/C++基礎程式設計班 控制敘述 講師:林業峻 CSIE, NTU 3/7, 2015."— Presentation transcript:

1 C/C++基礎程式設計班 控制敘述 講師:林業峻 CSIE, NTU 3/7, 2015

2 課程大綱 選擇控制 (流程控制) 重覆控制 (迴圈) 作業 IF-ELSE SWITCH-CASE FOR WHILE
迴圈中的流程控制: break, continue 巢狀迴圈 作業

3 IF-ELSE 用途:程式執行時根據條件情況選擇要執行的程 式碼。 語法:

4 IF-ELSE 範例:寫個程式,判斷一個人的成績是否及格 (及 格分數為60分) Start End
#include <stdio.h> int main() { int score; printf("輸入您的分數:"); scanf("%d",&score); if ( score < 60 ) printf("不及格\n"); } else printf("及格\n"); return 0; 輸入分數 分數 < 60 no yes 不及格 及格 End

5 IF-ELSE 邏輯判斷可以使用的運算符號如下 用來連結邏輯判斷的符號有 ! “非“, 條件不成立時, 整個判斷就會成立 運算符號 意義
> 大於 < 小於 >= 大於或等於 <= 小於或等於 == 等於 != 不等於 符號 意義 && "而且", 所有的條件都要成立, 整個判斷才會成立 || "或", 只要有任何一個條件成立, 整個判斷就會成立 ! “非“, 條件不成立時, 整個判斷就會成立

6 IF-ELSE IF 若我們要判斷的條件不只是做“對”或“錯”的 二分法時,可以在if後增加else if來做多重判斷。 語法:
if( 條件判斷式1 ) {   條件1成立的話要做的程式碼; } else if ( 條件判斷式2 ) {   條件2成立的話要做的程式碼; } else {   以上條件都不成立的話要做的程式碼; }

7 IF-ELSE IF 範例:寫個程式,判斷一個人的成績是否及格 (大 學部及格分數為60分,研究所為70分)
#include <stdio.h> int main() { int score, n; printf("(1)大學部 (2)研究所:"); scanf("%d",&n); printf("輸入您的分數:"); scanf("%d",&score); if ( score < 60 && n == 1) printf("不及格\n"); } else if ( score < 70 && n == 2) else printf("及格\n"); return 0;

8 練習 修改上頁程式, 若使用者輸入值不合下列格式則不 做任何輸出 100 只能輸入 1 或 2 代表大學部或研究所 成績只能輸入 0~100
100 score < 0 score >=0 && score <= 100 score >100

9 課程大綱 選擇控制 (流程控制) 重覆控制 (迴圈) 作業 IF-ELSE SWITCH-CASE FOR WHILE
迴圈中的流程控制: break, continue 巢狀迴圈 作業

10 SWITCH-CASE 用途:程式執行時根據資料數值選擇要執行的程 式。 語法:
switch( 變數或運算式 ) {   case 值1:    程式碼;    break; //可不加, 程式結果不同!   case 值2:    程式碼;    break;   default:    程式碼;    break; }

11 SWITCH-CASE 範例, 輸入兩個數字, 再根據指定功能顯示兩數計 算結果 #include <stdio.h>
int main() { double a,b,ans; int n; scanf("%lf%lf",&a,&b); printf("1: 加法\n"); printf("2: 減法\n"); printf("3: 乘法\n"); printf("4: 除法\n"); scanf("%d",&n); switch(n) case 1: ans=a+b; break; case 2: ans=a-b; case 3: ans=a*b; case 4: ans=a/b; default: printf("無此功能\n"); return 0; } printf("計算結果: %lf\n", ans);

12 課程大綱 選擇控制 (流程控制) 重覆控制 (迴圈) 作業 IF-ELSE SWITCH-CASE FOR WHILE
迴圈中的流程控制: break, continue 巢狀迴圈 作業

13 FOR迴圈 用途:當程式需要來回重複執行某一段程式碼時 語法: for通常用在已知重覆執行次數時。

14 FOR迴圈 範例:印出10行hello 所以在下面的例子中,進入迴圈前會做i=0;當i<10的時候,迴 圈會繼續跑。
#include <stdio.h> int main() { int i; for ( i=0; i<10; i++ ) printf("hello %d\n",i); } return 0;

15 FOR迴圈 範例:算出1+2+3+....+99+100 #include <stdio.h> int main() {
int i; int sum=0; for ( i=1; i<=100; i++ ) sum+=i; } printf("%d\n",sum); return 0;

16 練習 輸入一個大於0的整數n 印出"1+2+3+…+n = 結果" 例如: 輸入5, 印出 = 15

17 課程大綱 選擇控制 (流程控制) 重覆控制 (迴圈) 作業 IF-ELSE SWITCH-CASE FOR WHILE
迴圈中的流程控制: break, continue 巢狀迴圈 作業

18 WHILE迴圈 用途:當程式需要來回重複執行某一段程式碼時 語法: while通常用在未知重覆執行次數時。
把for中的進入迴圈前要做的事與每跑完一次迴圈會做的事拿 掉,就是while迴圈。

19 WHILE迴圈 範例:輸入鍵盤按鍵,直到輸入q後程式結束。 #include <stdio.h>
#include <conio.h> int main() { char key=0; while(key!='q') key=getche(); } return 0;

20 DO-WHILE迴圈 用途:當程式需要先做一次某一段程式碼再判斷 是否要重複執行該一段程式碼時 語法:
while迴圈中的判斷式可以放在迴圈的最後端, 形成一個do- while迴圈. 這樣子的迴圈最少會跑一次

21 DO-WHILE迴圈 範例:輸入鍵盤按鍵,直到輸入q後程式結束。 #include <conio.h> int main() {
char key; do key=getche(); }while(key!='q'); return 0; }

22 課程大綱 選擇控制 (流程控制) 重覆控制 (迴圈) 作業 IF-ELSE SWITCH-CASE FOR WHILE
迴圈中的流程控制: break, continue 巢狀迴圈 作業

23 迴圈中的流程控制 在迴圈中,有兩個指令可方便做控制:
break:直接結束迴圈 continue:直接跳到迴圈開頭處繼續下一次執行 用途:常用來設定在迴圈中某些情形下,選擇做 結束(break)或回頭(continue)

24 迴圈中的流程控制: break 範例:輸入鍵盤按鍵,直到輸入q後程式結束。 #include <conio.h>
int main() { char key; while(1) //while中條件為 1 稱為無窮迴圈  key=getche(); if ( key=='q' ) break; } return 0;

25 迴圈中的流程控制: continue 範例:假如有一棟大樓沒有4樓這個樓層,寫一個 程式顯示從1樓坐電梯到10樓所經過的樓層
#include <stdio.h> int main() { int i; for ( i=1; i<=10; i++ ) // 若是4樓就跳過, 回到迴圈開頭繼續執行 if ( i==4 ) continue; printf("floor %d\n",i); } return 0;

26 練習 寫個程式,判斷一個人的成績是否及格 (及格分數 為60分) 每次判斷完成績後可輸入 'y': 繼續 其他: 離開 Start End
輸入分數 分數 < 60 no yes 不及格 及格 輸入字元 是否繼續? yes End no End

27 課程大綱 選擇控制 (流程控制) 重覆控制 (迴圈) 作業 IF-ELSE SWITCH-CASE FOR WHILE
迴圈中的流程控制: break, continue 巢狀迴圈 作業

28 巢狀迴圈 迴圈中的迴圈 下面範例中, i每加三次, j才加一次, 試著觀察輸出結果 #include <stdio.h>
int main() { int i, j; for ( j=0; j<3; j++ ) for ( i=0; i<3; i++ ) printf("* "); } printf("\n"); return 0;

29 練習 輸入一個整數, 印出n列*號, 每列各含1~n個* 例如: 輸入5 輸出:

30 練習 印出下列九九乘法表:

31 課程大綱 選擇控制 (流程控制) 重覆控制 (迴圈) 作業 IF-ELSE SWITCH-CASE FOR WHILE
迴圈中的流程控制: break, continue 巢狀迴圈 作業

32 作業: 中文大寫數字輸出 輸入一個金額1~99999整數, 印中文大寫數字金額 輸入輸出格式 (格式必須與下面程式結果一致)
中文大寫1~9: 壹,貳,參,肆,伍,陸,柒,捌,玖 需要印出單位: 萬,仟,佰,拾 不需輸出"零" 最後要印出"元整" 輸入錯誤數值範圍,顯示錯誤後程式直接結束 輸入輸出格式 (格式必須與下面程式結果一致)

33 繳交 使用FTP上傳 請使用FileZilla上傳作業至指定FTP主機 繳交期限:2015. 03/14(六) 主機: 使用者名稱: 密碼:
連接埠: 將程式存到自己學號之資料夾 (請自行新增) 檔名: 251XX_hw1_##.c XX為學號, ##為版本編號 Ex: _hw1_01.c (25100號同學 作業1 第1版) 請使用FileZilla上傳作業至指定FTP主機 繳交期限: /14(六) 公佈解答後,不再收作業


Download ppt "C/C++基礎程式設計班 控制敘述 講師:林業峻 CSIE, NTU 3/7, 2015."

Similar presentations


Ads by Google