語句與流程控制

2021-08-21 16:57:34 字數 4155 閱讀 3343

1.1、資料描述語句

1.1.1、定義語句

1.1.2、宣告語句

1.2、基本功能語句

1.3、流程控制語句

1.3.1、選擇語句

1.3.2、多分支結構

1.3.3、迴圈語句

1.3.4、轉向語句

(復合語句是由一對花括號括起來的若干語句組成)

#include

int main()

1.1、表示式語句

1.2、空語句

1.3、函式呼叫語句

1.4、復合語句

1.5、程式舉例

(1)財務人員給員工發工資時經常遇到這樣乙個問題,即根據每個人的工資額(以元作為單位)計算出各種面值的鈔票的張數,且要求總張數最少。

例如,某職工工資為3436元,發放方案為:100元34張,20元1張,10元1張,5元1張,1元1張。

(2)從鍵盤輸入乙個大寫字母,要求改用小寫字母輸出。

2.1、if語句(判定給定的條件,決定執行不同的兩段程式之一)

2.1.1、程式舉例

(1)輸入兩個實數a,b,如果a比b大,則將兩個數數值交換,按代數值由小到大次序輸出這兩個數

(2)輸入三個實數a,b,c,按代數值由小到大次序輸出這三個數。

(3)有一函式如下,編一程式,輸入乙個x值,輸出y值。

-1              (x<0)

y=     0               (x=0)

1               (x>0) 

(4)寫程式,判某一年是否閏年。

輸入:年(year)

計算:判是否閏年vim

輸出:閏年或非閏年(leap)

閏年條件:

能被4整除,但不能被100整除。

能被4整除,又能被400整除。

2.2、switch語句(格式:switch(表示式)

執行過程為:當表示式的值等於常量表示式i的值,則從語句序列i開始執行到語句序列n+1為止 。若表示式的值不等於任何乙個常量表示式的值,則只執行default後面的語句。

一般在每個語句序列之後加乙個break語句,這樣在執行語句序列i之後,使流程跳出switch結構,實現多分支選擇結構。)

(1)、編寫乙個能進行兩個運算元加減乘除四則運算的計數器模擬程式

輸入:兩個運算元和運算子

計算:根據運算子確定運算

輸出:運算結果

(2)、main()

}case 3: m++;n++;break;

case 4: m++;n++;

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

}結果是多少?

(3)、給出一百分制成績,要求輸出成績等級『a』、』b』、『c』、『d』、『e』。90分以上為『a』 ,80~89分為』b』 ,70~79分為『c』...

3.1、while語句(while語句是支援「當型」迴圈控制結構的語句。

一般格式為: 

while  (表示式)  

)(1)、輸入:無

計算:1+2+3+l+100

輸出:計算的和

(2)、計算一條語句中的空格、字母、數字的個數。

3.2、do-while語句(do_while語句是支援「直到型」迴圈控制結構的語句。

一般格式為: 

do while (表示式); )

(1)、輸入:無

計算:1+2+3+l+100 

輸出:計算的和

3.3、for語句(for語句是一種使用比while語句更加靈活的迴圈控制語句。

一般格式為: 

for (表示式1;表示式2;表示式3)  

語句先求解表示式1;

再解表示式2,若為真(非0)值,則

執行語句,然後求解表示式3,再

轉到求解表示式2。若為假(0)值,

則結束for語句的執行。

(1)、輸入:無

計算:1+2+3+l+100

輸出:計算的和

(2)、用for語句編寫乙個計算1+3+5+ l +(2*i-1)的程

序,其中  i=1, 2, 3, l, 100。

(3)、輸入:n

計算: 1!+2!+3!+ l+n!

輸出:計算的和

(4)、判斷數字m是否為素數(質數)。

(5)、求100到200之間的素數。

輸入:無

計算: 求素數

輸出: 輸出素數 每4個一行 每個數占4位

3.4、迴圈語句巢狀(乙個迴圈語句內又包含另乙個完整的迴圈語句,稱為迴圈語句的巢狀。內嵌的迴圈語句一般稱為內迴圈,包含內迴圈的迴圈語句稱為外迴圈。內迴圈再巢狀內層迴圈,就夠成了多重迴圈。)

(1)、main() 

while (i<3);

i++;    

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

}3.5、break和continue語句

3.5.1、break語句(break語句的功能是:

在switch語句中使流程跳出switch結構。

在迴圈語句中使流程跳出當前迴圈。)

(1)、將從鍵盤上輸入的若干個正整數求和,遇到負數則終止

程式,並且輸入的數不超過10個。

輸入:正整數

計算:求累加和

輸出:和

3.5.2、continue語句(continue語句的功能是在迴圈語句中使本次迴圈結束,即跳過迴圈體中下面尚未執行的語句,接著進行下次是否執行迴圈的判斷。)

(1)、程式設計把100~200之間的不能被3整除的數輸出。

3.6、迴圈語句的注意點

3.6.1、第一點

在多重迴圈中,如果有可能,應當將最長的迴圈放在最內層,最短的迴圈放在最外層,以減少cpu跨切迴圈層的次數。

示例:長迴圈層在最內層,效率高

for (col = 0; col<5; col++)

}長迴圈放在最外層,效率低

for (row = 0; row<100; row++)

}3.6.2、第二點

建議for語句的迴圈控制變數的取值採用"半開半閉區間"寫法。

半開半閉區間寫法和閉區間寫法雖然功能相同,但相比之下,半開半閉區間寫法更加直觀。二者對比如下:

半開半閉區間寫法:

for (n = 0; n < 10; n++)

閉區間寫法

for (n = 0; n <= 9; n++)

3.6.3、第三點

不能在for迴圈體內修改迴圈變數,防止迴圈失控

for (n = 0; n < 10; n++)

3.6.4、第四點

迴圈要盡可能短,要使**清晰,一目了然。

如果所寫的乙個迴圈的**超過以顯示屏,那肯定會讓讀**的人發狂的。解決辦法有兩個:

第一:重新設計這個迴圈,確認是否這些操作都必須放在這個迴圈裡。

第二:將這些**改寫成乙個子函式,迴圈中只呼叫這個子函式即可。

一般來說迴圈內的**不要超過20行。

3.6.5、第五點

把迴圈巢狀控制在3層以內

國外有研究資料表明,當迴圈巢狀超過3層時,程式設計師對迴圈的理解能力會極大的降低。如果你的迴圈巢狀超過3層,那麼就建議你重新設計迴圈或是將迴圈內的**改寫成乙個子函式。

3.6.6、第六點

for語句的控制表示式不能包含任何浮點型別的物件

3.7、習題

(1)、

日本某地發生了一件**案,警察通過排查確定殺人**必為4個嫌疑犯的乙個。以下為4個嫌疑犯的供詞。

a說:不是我。

b說:是c。

c說:是d。

d說:c在胡說

已知3個人說了真話,1個人說的是假話。現在請根據這些資訊,寫乙個程式來確定到底誰是**

Python流程控制語句流程控制語句

流程控制語句1 if語句 if 語句基本用法 if 表示式 語句塊其中,表示式可以是乙個單純的布林值或變數,也可以是比較表示式或邏輯表示式,如果表示式為真,則執行 語句塊 如果表示式的值為假,就跳 過 語句塊 繼續執行後面的語句。2 if else語句 if else 語句基本用法 if 表示式 語...

流程控制語句

for a b c 若迴圈體中出現continue,c語句仍得到執行。while dowhile b 執行完do後大括號,再檢驗while b 條件,若為真,繼續。從而有a語句塊至少執行一次的特性。continue 迴圈體內餘下語句忽略,繼續下次迴圈。break用於跳出迴圈或switch.case....

流程控制語句

迴圈 while do while for 判斷 if else switch case 異常處理 try catch finally throw 分支 break continue label return 迴圈 while和do while語句 while語句用於在條件保持為true時反覆執行乙...