程式結構&語法
程式架構 前置處理區 傳回值資料型態 函數名稱(傳入參數) { 程式敘述區; return 傳回值; }
程式架構(For Example) #include<stdio.h> void main(void) { int i=2; printf(“i=%d”,i); } 前置處理區 宣告main函數(主程式) 變數宣告 程式敘述區
程式基本結構 循序式結構 選擇式結構 重複式結構 goto結構 程式依第一個敘述執行至最後一個敘述。 程式含有條件敘述,當條件敘述的條件成立時,執行條件成立區的敘述。 條件敘述 Ex: if, if-else, if-else if, switch 重複式結構 重複敘述 Ex: do-while, while, for goto結構 將程式流程無條件轉移到標籤位置。
選擇式結構
選擇性:if if敘述的語法格式: if敘述的流程圖: 判斷條件 敘述 true if(判斷條件) { 敘述區; }
選擇性:if-else if-else敘述的語法格式: if-else敘述的流程圖: if(判斷條件) { 敘述區1; } else 敘述1 true false 敘述2 if(判斷條件) { 敘述區1; } else 敘述區2;
選擇性:if-else if if-else if敘述的語法格式: if-else if敘述的流程圖: if(判斷條件1) { 敘述區1; 敘述1 true false 判斷條件2 判斷條件3 敘述2 敘述3 敘述n 敘述n+1 if(判斷條件1) { 敘述區1; } else if(判斷條件2) 敘述區2; else if(判斷條件3) 敘述區3; … else 敘述區n; 敘述區n+1;
選擇性:switch switch敘述的語法格式: switch敘述的流程圖: switch(運算式) { 選擇值1 選擇值2 選擇值n default … 敘述1 break 敘述2 敘述n 敘述 switch(運算式) { case 選擇值1: 敘述區1;break; case 選擇值1: 敘述區2;break; … default: 敘述區; } 注意事項: 1. break可有可無的差別 2. default可有可無的差別
重複式結構
重複性:for for敘述的語法格式: for敘述的流程圖: for(運算式1;運算式2;運算式3) { 敘述區; } 運算式1 false true 敘述 運算式3 false Next敘述 for(運算式1;運算式2;運算式3) { 敘述區; } 運算式1:迴圈控制變數的初值 運算式2:迴圈是否重覆執行的條件 運算式3:迴圈控制變數的修正值
程式範例-計算1累加至100的總和,並輸出其總和 #include<iostream.h> main() { int i , sum=0; /*宣告變數 i、sum為整數*/ for (i=1; i<=100; i++) sum= sum+ i; } cout<<“sum=”<<sum<<endl; /*迴圈結束時,印出sum的值*/
程式範例-無窮for迴路 #include<iostream.h> void main() { int i; int count = 1; for ( ; ; ) cout<<“guess number here:”; cin>>i; if ( i == 5 ) break; count++; } cout<<“You take”<<count<<“ times to get it.”<<endl;
重複性:while while敘述的語法格式: while敘述的流程圖: while(運算式) { 敘述區; 迴圈主體; 設定增減量; } 運算式2 true 敘述 false Next敘述 while(運算式) { 敘述區; 迴圈主體; 設定增減量; }
程式範例-while(1)與switch的應用 #include<iostream.h> void main() { int i; while(1) cout<<“Enter 1-4 for exit ”; cint>>i; switch ( i ) case 1 : cout<<“Excellent!\n”; break; case 2 : cout<<“Good!\n”; case 3 : cout<<“Fair!\n”; break; case 4 : cout<<“Bye!\n”; default: cout<<“Illegal number ry again!\n”; } if (i==4)
重複性:do while do while敘述的語法格式: do while敘述的流程圖: do { 敘述區; 迴圈主體; 設定增減量; 運算式2 true 敘述 false Next敘述 do { 敘述區; 迴圈主體; 設定增減量; } while(運算式);
程式範例-計算總和 #include<iostream.h> void main() { int a, sump=0; do cout<<“請輸入一個整數:”; cin>>a; if (a>0) sump=sump+a; } while (a!=0); cout<<“總和=”<<sump<<endl; }
重複式結構比較 for (i=1;i<=5;i++) { j++; } i=1; while(i<=5) hu i=1; do { i++; j++ ; } while (i<=5);
goto結構
goto goto敘述的語法格式: goto敘述的流程圖: …… 標籤名稱: 敘述區; goto 標籤名稱; goto 標籤 …. 標籤: 程式敘述 標籤 敘述 程式敘述 goto goto 標籤 …. 標籤:
Go to Example #include <iostream.h> int main() { char letter; cout << "請先按打字鍵,再按 Enter 執行判斷,按 ; 鍵則結束。\n"; start: cin >> letter; // 輸入字元並存入letter if (letter == ';') // 若letter==';'則 goto stop; //跳至stop else if (letter >= 'A' && letter <= 'Z') // 若'A'<=letter<='Y'則 cout << "輸入為大寫鍵\n"; //輸出字串並結束 if else if (letter >= 'a' && letter <= 'z') //若'a'<=letter<='y'則 cout << "輸入為小寫鍵\n"; //輸出字串並結束 if else if (letter >= '0' && letter <= '9‘ ) //若'0'<=letter<='9'則 cout << "輸入為數字鍵\n"; //輸出字串並結束 if else //若皆不等則 cout << "輸入為符號鍵\n"; //輸出字串並結束 if goto start; //跳至 start stop: return 0; }