C語言知識點小結Part1 分支與迴圈

2022-10-08 05:36:09 字數 3495 閱讀 2722

c語言是一門結構化的程式語言

1.順序結構

2.選擇結構

3.迴圈結構

自用學習筆記----一直會補充,不是最終版,有錯誤歡迎各位大佬指正o(∩_∩)o

part1.分支和迴圈語句

什麼是語句?

有乙個分號隔開的就是乙個語句,單獨乙個分號也算乙個語句,只是乙個空語句。

一、分支語句:

1.if語句

2.switch語句

(1)if語句

使用方式①——單分支

if(表示式)

語句;

該情況下,表示式的結果為真,執行語句,否則,什麼都不執行。

使用方式②——雙分支

if(表示式)

語句1;

else

語句2;

該情況下,表示式的結果為真,執行語句1,表示式結果為假,執行語句2。

使用方式③——多分支:

if(表示式1)

語句1;

else if(表示式2)//還需要條件限制

語句2;

else

語句3;

該使用方法表示含義:表示式1成立,執行語句1;另外如果表示式1不成立,表示式2成立,執行語句2;如果表示式1,2都不成立,執行語句3。

此情況下如果最後乙個else不存在,如果表示式1,2都不成立,不走任何乙個分支。

另外如果寫法為:

if(age<18

)  語句1;

else

if(18

<=age<20

)  語句2;

else

語句3;

**是順序執行的,假如輸入age =10,應該執行語句1,但時候順序執行到else if表示式中執行的語句順序是:先判斷18<=age,如果為假返回0,然後判斷0<20,為真,則又執行語句2,只要age<18一定會執行語句2

0表示假,一切非0為真

-1不是0,表示真

注意else的匹配原則,就近if匹配,防止else掛起bug,這種情況下還不容易查詢出錯

//

if(表示式)

return

x;return y;

該部分的意思是:如果滿足表示式,返回x;如果不滿足返回y。

但是這樣寫**的可讀性是不好的,一般不這樣寫

一般會寫的表示式:

if

(表示式)

else

溫習提示4:容易會出現的bug方式:

int

main()

retuen 0;

}

這種情況下的輸出結果是:哈哈

(→_→)請原諒這裡的輸出結果忘記貼圖~~

明明1不等於5,但是列印結果為哈哈,出現這種情況的原因是:乙個等號是賦值,雙等號是判斷相等

該情況下的出錯,編譯器不會直接暴露出錯誤

避免出現這種錯誤的辦法:將常量寫在前邊,定義的變數寫在後邊

if(5 == a),這樣即使手抖也不會出現bug,o(∩_∩)o哈哈~~~~

(2)switch語句

switch語句也是一種分支。相對於 if 語句而言,switch 語句可以更方便地應用於多個分支的控制流程。

switch 語句與 if 語句不同的是,switch 語句只能夠測試是否相等,因此,case 語句後面只能是整型或字元型的常量或常量表示式;而在 if 語句中還能夠測試關係與邏輯表示式。

使用方法

switch(整型表示式)

ps:什麼又是語句項?什麼是整形表示式?整形表示式和整型常量表示式有什麼不同?

語句項是一些case語句

表示如下:

case 整型常量表示式

語句;整型表示式是整個表示式的最後的值是乙個整型,但是不能是float等。

整型常量表示式是包含運算子的整型表示式。------(整型常量+運算符號也就是只能用1+1、1+2)

如果使用

int a = 0;

int n = 1;

switch(a)

這種也是不可以的,因為case後邊的表示式不是常量

舉個例子~~

int

main()

}

插入的break是終止跳出分支的,如果不break,那麼從**進入case一直到最後一條case才會跳出

但是不是每個分支都需要加語句

舉個例子~~:

int

main()

}

這裡case選項為1-7,如果超出這個範圍,將不作處理,但是這種情況下

後邊的default給乙個友好提示處理非法case

case和default沒有順序嚴格的控制,但是一般會放在後邊

case語句裡是可以出現if語句的

二、迴圈語句:

1.while迴圈

2.for迴圈

3.do while迴圈

(1)while 迴圈

語法結構:

while(表示式)

迴圈語句;

表示式的結果為真,就迴圈語句,直到表示式的值為假,語句才不再執行,迴圈停止

while(1)為死迴圈

迴圈裡如果遇到break和continue:

break---不會有執行,跳出while迴圈;continue---continue後邊的**不再繼續執行,回到while迴圈的判斷部分,繼續while做判斷

continue不明白的話,舉個例子:

int

main()

}

//此時列印的結果為

//1 2 3 4

//因為i++執行不了,卡在i = 5,一直在迴圈

如果調整一下**,將i++的位置往前放一放

int

main()

}

//此時列印的結果為

//1 2 3 4 6 7 8 9 10

//i = 5的後邊**跳過

總結:

break在while迴圈中的作用:

只要遇到break,就停止後期的所有迴圈,直接終止迴圈,用於永久終止迴圈

continue用於終止本次迴圈,後邊的**不會再執行,而是直接跳轉到while語句的判斷部分,進行下一次迴圈的入口判斷。

迴圈部分未完待續,明天繼續完善......

還會用到c語言的輸入輸出操作,到時候再做乙個總結,補鏈結在這裡

c語言知識點 1

1.參與運算的資料是什麼型別,結果也是什麼型別,並且參與運算資料必須是同一型別,會進行自動型別轉換 double d 10 3 3.00000,還有自動型別提公升 2.int size sizeof char 僅這種情況括號不能去掉 3.c語言中,條件成立為真,不成立為假,任何數值都有真假性,只有0...

C語言知識點梳理 1

include int main 這是主函式。當程式執行時main函式是起始函式,程式的起點。int為函式的返回值型別,括號中的內容為函式的引數,這裡主函式沒有引數,所以括號中沒有內容,在自定義函式中如果需要引數則需要在括號中依次定義引數的型別和引數名 如 int pow int int a,int...

C語言知識點 複習(1)

知識點總結 1.所有巨集定義 列舉常量 唯讀常量全用大寫字母命名,用下劃線分割單詞。2.不同型別資料之間的運算注意精度擴張問題,一般低精度向高精度擴張。3.sizeof在計算變數的時候,括號可以省略 在計算資料型別的時候,括號是不可以省略的。4.const應該改寫為readonly,是唯讀的變數,並...