順序結構:
順序執行語句
分支結構:
通過進行一個判斷在兩個可選的語句序列之間選擇執行(分支)
if語句:根據給定條件進行判定,以執行某個分支程序段,最多只能執行一個分支,可不執行分支。
①
if(條件表達式){ 語句1; }
當條件表達式為真,執行語句1,否則,跳過語句1,繼續執行下面的語句
②
if(條件表達式);{ 語句1; }
表達式括號后跟了“;”,導致if語句為空語句,大括號內的語句跟if語句沒有關系,無論條件真假都會執行語句1
③級聯式
if(條件表達式1){ 語句1; } else if(條件表達式2){ 語句2; } else{ 語句3; }
哪個條件表達式為真則執行哪個語句,當if和else if的條件表達式都為假時,執行else里的語句3
條件運算符:通常有兩個分支,只執行一個分支
條件表達式 ? 表達式1 : 表達式2;
如果條件表達式為真,整個條件表達式的值為表達式1的值;
如果條件表達式為假,整個條件表達式的值為表達式2的值。
int c = a > b ? a : b;
switch語句:多分支語句,通過判斷整型表達式的值,來決定執行語句,通常與case配合使用
switch ——開關,case ——情況,開關決定發生的情況
switch(表達式){ case 值1:{語句1;break;} //語句中需定義變量時加{},不定義可不加 case 值2:{語句2;break;} …… case 值n:{語句n;break;} default:{語句n+1;break;} //以上case的情況都不滿足時執行 }
break用在switch…case中用於結束某個case,然后執行switch之外的語句。
case后面的標簽只能是整型常量或者整型常量表達式,不能用變量作為case的標簽。
switch語句比if-else級聯式更容易閱讀,更直觀。
- 整個default語句可以舍棄掉
- 多個case(語句塊一樣時)可以運行一個語句塊
- case中定義變量需要加{}
循環結構:
在滿足某個條件的時候反復執行一個語句序列(循環)
特定條件稱為循環條件,反復執行的程序段稱為循環體
①while循環(先判斷,后執行)
while(條件表達式){ 語句; }
條件表達式為真,執行循環體;一旦條件表達式為假,停止循環。
②do…while循環(先執行,后判斷)
do{ 語句; }while(條件表達式);
先執行循環體,再判斷循環條件,直到條件不滿足的時候,停止循環。
③for循環(先判斷,后執行)
for(循環變量初始化;循環條件;循環增量){ 語句; }
先進行循環變量初始化,一般是以循環變量為條件判斷,若循環條件為真,執行語句后,再執行循環增量,進入下次循環繼續判斷循環條件。
break:
在switch語句中,其作用是跳出switch語句;
在循環體中,其作用是跳出本層循環(通常與if語句連用)
while(條件表達式1){ if(條件表達式2){ 語句1; break; }
語句2; }
當條件表達式2為真時,執行語句1后跳出循環,不再執行語句2,也不再繼續循環。
continue:
在循環體中的作用是結束本次循環(continue后面的代碼不再執行),進入下次循環(通常與if連用)
while(條件表達式1){ if(條件表達式2){ 語句1; continue; } 語句2; }
當條件表達式2為真時,執行語句1后結束本次循環,不再執行語句2,再看條件表達式1若為真,則進入下次循環,否則跳出循環。
循環嵌套:
一般使用for循環嵌套
例子:九九乘法表
c語言版:
1 #include<stdio.h>
2 int main() 3 { 4 for(int i = 1; i <= 9; i++) //行
5 { 6 for(int j = 1; j <= i; j++) //列
7 { 8 printf("%d*%d=%d",i,j,i*j); 9 printf(" "); 10 } 11 printf("\n"); 12 } 13 return 0; 14 }
c++版:
1 #include<iostream>
2 using namespace std; 3 void jiu(int n) 4 { 5 for(int i = 1; i <= n; i++) //行
6 { 7 for(int j = 1; j <= i; j++) //列
8 { 9 cout << i << "*" << j << "=" << i * j; 10 cout << " "; 11 } 12 cout << endl; //回車
13 } 14 } 15 int main() 16 { 17 int n = 9; 18 jiu(n); 19 return 0; 20 }
c#版:
1 using System; 2
3 namespace ConsoleApplication1 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 for (int i = 1; i <= 9; i++) 10 { 11 for (int j = 1; j <= i; j++) 12 { 13 Console.Write("{0}*{1}={2}", i, j, i * j); 14 Console.Write(" "); 15 } 16 Console.WriteLine(); //換行
17 } 18 Console.ReadKey(); 19 } 20 } 21 }
結果: