5 流程控制

2022-08-17 16:30:23 字數 4664 閱讀 1064

正確為true,錯誤為false。

​ 程式中的所有語句都是從上到下逐條執行,這樣的程式結構叫做順序結構。順序結構是程式開發中最常見的一種結構,它可以包含多種語句,如變數的定義語句、輸入輸出語句、賦值語句等。下面來看乙個順序結構的簡單例子,通過程式實現按順序輸出"我愛c語言"

#include int main()
也就是前面也有用到過得if,else還有switch

2.1、判斷語句if...else if...else

if也就是如果,else if其他的如果,else其他的。

語法格式是這樣

if(判斷條件){//if可以單獨出現

執行語句1

}else if(判斷條件){//else if可以很多個!

執行語句2

}else{//需要和if一起出現。當判斷條件只有兩種時前面沒有else if也可以

執行語句3

上述語法格式中,判斷條件是乙個布林值。當判斷條件1為true(真的)時,if後面{}中的執行語句1會執行。當判斷條件1為false(錯誤)時,會繼續執行判斷條件2,如果為true則執行語句2,以此類推,如果所有的判斷條件都為false,則意味著所有條件均未滿足,else後面{}中的執行語句3會被執行。

#include //做乙個分數及格與否的判斷

int main()else

retrun;

}

上述語法中,判斷條件是乙個布林值。當判斷條件為true時,if後面{}中的執行語句1會被執行。當判斷條件為false時,else後面{}中的執行語句2會被執行。

平常的生活當中,我們還可以看到更多的情況,比如將分數分優秀,良好,及格以及不及格。

#include //

int main()

else if (sum >= 75 && sum < 90)

else if (sum >= 60 && sum < 75)

else

retrun 0;

}

2.2、switch 條件語句

switch 也是很常用的選擇語句,比起if,它用的相對更簡單一些並且只能用一些固定的值。比如你想請人吃飯,但是囊中羞澀,就只能根據自己身上的錢來選,由此,我們來構造乙個偽**

身上帶的錢的數量

如果有10000,去五星大酒店,如果沒有這麼多錢就算了

如果有1000,去一些大餐館,沒有就算了

如果有100,去小餐館,沒有就算了

如果有10,去吃糖果,沒有就算了

沒錢,那就不吃了,就算了。

轉成**就是

#include int main()    

return 0;

}

switch語句將表示式的值與每個case中的目標值進行匹配,如果找到了匹配的值,就會執行相應case後的語句,否則執行default後的語句。這裡break的作用是跳出switch語句。(往後有更詳細的了解)

switch還可以這樣

switch(money)
在實際生活中經常會將同一件事情重複做很多次,比如在走路時,會重複使用左右腳,打桌球時,會重複揮拍的動作等。同樣在c語言中,也經常需要重複執行同一**塊,這時就需要使用迴圈語句。迴圈語句分為while迴圈語句、do…while迴圈語句和for迴圈語句三種。

3.1 while

while(迴圈條件判定)
就是當迴圈條件判定為true時,就會執行{}中的語句塊,如果是判定為false的時候這個while就停止迴圈。

用while來實現乙個1~4的輸出(printf):

#include int main()

}

擴張:將數字從大到小輸出,

#include int main()

}

那麼while(x--)會有什麼不同

你會發現用上面的,會多輸出乙個x=0,為什麼呢?

你可以將它拆成這樣看

while(x)

而while(--x)則是

x=x-1 //會先執行一次這個

while(x)

3.2、do...while
do 

while(迴圈條件);

與while不同的是,do...while會先執行do之後{}中間的語句塊,然後再進行while()的迴圈條件判斷。

用do while來實現乙個1~4的輸出(printf):

#include int main()while(x <= 4);			//條件判定

return 0; //結束

}

那麼從4-1呢?

#include int main()while(--x);				//條件判定,並x-1,與while一樣,x--會多乙個x = 0的輸出

return 0; //結束

}

3.3、for

通常用於迴圈次數已知的情況。語法格式為

for(初始化表示式; 迴圈條件; 操作表示式)

輸出1-4。

#include int main()//執行步驟:首先會執行定義乙個i=1,之後判定 i 是否會小於等於4,是的話,就執行輸出列印。

//然後執行i++,之後再進行判定 i 是否會小於等於4,否的話就退出這個迴圈。

retrun 0;

}

對自然數1~4進行求和

#includeint main()

printf("sum = %d \n", sum); //列印累加的和

return 0;

}

3.4、迴圈巢狀

有時為了解決乙個較為複雜的問題,需要在乙個迴圈中再定義乙個迴圈,這樣的方式被稱作迴圈巢狀。

while、do…while、for迴圈語句都可以進行相互巢狀,

比如for迴圈中巢狀for迴圈,具體語法格式如下:

for(初始化表示式; 迴圈條件; 操作表示式) 

………}

接下來通過for語句的迴圈巢狀來實現使用「*」列印直角三角形

#includeint main()

printf("\n"); //換行

} return 0;

}

跳轉語句用於實現迴圈執行過程中程式流程的跳轉

4.1、break

在switch條件語句和迴圈語句中都可以使用break語句。當它出現在switch條件語句中時,作用是終止某個case並跳出switch結構。當它出現在迴圈語句中,作用是跳出當前迴圈語句,執行後面的**。接下來通過乙個具體的案例來演示break語句如何跳出當前迴圈:

#includeint main()

x++; //x進行自增

} return 0;

}//所以這個的列印執行只會到 x = 3。

4.2、goto

當break語句出現在巢狀迴圈中的內層迴圈時,它只能跳出內層迴圈,如果想要跳出外層迴圈則需要對外層迴圈新增標記,然後使用goto語句。接下來通過乙個案例來演示如何使用goto語句:(不常用)

#includeint main()

printf("*"); //輸出*

} printf("\n"); //換行

} end: return 0;

}

4.3、continue

在迴圈語句中,如果希望立即終止本次迴圈,並執行下一次迴圈,此時就需要使用continue語句。接下來通過乙個1~100之內的奇數求和的案例來演示continue語句的使用

#includeint main()

sum += i; //實現sum和i的累加

} printf("sum = %d\n", sum);

return 0;

}

使用for迴圈讓變數i的值在1100之間迴圈,在迴圈過程中,當i的值為偶數時,將執行continue語句結束本次迴圈,進入下一次迴圈。當i的值為奇數時,sum和i進行累加,最終得到1100之間所有奇數的和,列印「sum = 2500」

作業:作業2:

計算 1+2+3...+100的和

#includeint main() 

printf("1+2+3...+100=%d\n", sum);

while (1); //卡屏

return 0;

}

9*9乘法表:

#include int main()

} printf("\n");

} while (1);

return 0;

}

程式流程控制5

案例 package main import fmt math rand time func main fmt.println 生成 99 一共使用了 count 基本介紹 break語句用於終止某個語句塊的執行,用於中斷當前for迴圈或跳出switch語句。基本語法 以for迴圈使用break為例...

Day5 流程控制

1.從鍵盤上輸 入 個數,顯示它的絕對值 允許使 用abs a float input 請輸入任意數值 if a 0 print 這個數字的絕對值是 0f a else print 這個數字的絕對值是 0f a 2.假設 使用者名為admin,密碼為123abc,從控制台分別輸 入 使用者名稱和密碼...

Python基礎 5 流程控制

常用的流程控制語句3種 python中的條件語句一般是指if else語句 score 83 如果大於等於60分就及格 小於60分就不及格 if score 60 print 及格 print 及格 print 及格 注意 score 55 if score 60 print 及格 else pri...