Day5 分支語句,for迴圈

2021-07-16 03:36:22 字數 3902 閱讀 1668

分支語句可以在程式執行的時候從幾組語句中選擇一組執行

在編寫程式時如果遇到多種可能性,任何時候只能選擇一種可能性,這種情況下就可以採用分支解決

if關鍵字用來編寫分支

if分支裡需要為每種可能性編寫相應的處理語句

每組語句需要乙個配對的邏輯表示式,如果某個邏輯表示式結果為真,就執行它對應的語句,其他語句就被忽略

只有不可能同時出現的多種可能性才可以用乙個分支解決

1#include

2int main()

9     else if(num<0)

12    return 0;

13 }

也可以用elseprintf("負數\n") ;

如果多種可能性中必然有一種可能性會出現就可以省略最後一組語句的邏輯表示式和if關鍵字

編寫if分支的時候應該把簡單邏輯表示式寫在前面,複雜邏輯表示式寫在後面

1#include

2int main()

9     elseif(num>=0&&num%2==0)

12    else if(num >= 0 && num%2 == 1)

15    return 0;

16 }

可以簡化:

if分支裡的多個邏輯表示式之間有前後順序,如果前面的邏輯表示式結果為真,就忽略後面的邏輯表示式,可以利用這一點簡化後面的邏輯表示式

(不能把if分支當作多組無關語句看待)

1#include

2int main()

9     else if(num%2==1)

12    else if(!(num%2==0))

15    else printf("輸入錯誤\n");

16    return 0;

17 }

編寫程式,超重問題,結果分為超重的男人,超重的女人,不超重

1#include

2int main()

9     else if(gender==0&&lenth-weight<110)

12    else   

15    return 0;

16 }

編寫程式從鍵盤上得到三個整數,找到最大的整數並顯示

1#include

2int main()

9     elseif(num2>=num1&&num2>=num3)

12    else 

15    return 0;

16 }

以上做法不好!!!不靈活,用以下做法

1#include

2 int main()

10        else   

13    else

17        else

20     }

21    return 0;

22 }

使用switch…case語句也可以編寫分支

如果乙個分支裡包含有限個整數,每個整數需要使用專門的語句處理。這種分支可以採用switch…case 格式編寫

1 #include

2 int main()

23    return 0;

24 }如果不加beak , 輸入0 執行case0語句後會依次執行,加break,會終止

練習:布林值轉換

1 #include

2 int main()

14    return 0;

15 }

編寫程式從鍵盤得到乙個年份數字,判斷是不是閏年並把結果螢幕上

閏年判斷方法:

如果年份數字可以被4整除但不能被100整除,則是閏年

如果年份數字可以被400整除,也是閏年

(!(year&3)&&(year%100))||  !(year%400)

1 #include

2 int main()*/

14    if((num%4==0&&num%100!=0)||num%400==0)

17    else

20    return 0;

21 }

迴圈語句可以反覆執行同一組語句

for關鍵字用來編寫迴圈

for迴圈裡讓乙個變數依次代表一組數字,用一組語句分別處理它所代表的每個數字,這個變數叫做迴圈變數

採用如下格式描述迴圈變數的變化過程

(把開始數字賦值給迴圈變數;

用邏輯表示式描述迴圈變數和結束數字之間的關係;

每次迴圈變數的變化規律)

用迴圈列印

54321

兩種方法:

1#include

2 intmain()            */

8     int num=0;

9     for(num=54321;num>=5;num/=10)

12     return 0;

13 }

使用者告訴程式有多少個成績,編寫程式從鍵盤得到多個考試成績,找出其中最大成績,最小成績並計算總成績,把它們顯示在螢幕上

1#include

2 intmain()

12         if(min>grade)

15         sum+=grade;

16     }

17     printf("the max is %d,the min is%d,the sum is %d\n",max,min,sum);

18     return 0;

19 }

假設有如下for迴圈

for

7     return 0;

8 }for迴圈小括號裡最前和最後的部分可以是用逗號連線的多條語句     例:   

1 #include

2 int main()

7    return 0;

8 }c99規範裡允許在小括號中臨時宣告迴圈變數,這種迴圈變數只能在迴圈裡使用

1 #include

2 int main()

7    return 0;

8 }執行語句:  gcc -std=c99 sixunhuan.c   

若:1 #include

2 int main()

printf("%d\n",num2);

7    return 0;

8 }則出錯,num2未宣告

可以在迴圈裡使用break語句,用來終止迴圈的執行

當執行完break;語句後,迴圈裡的所有語句都不再執行,迴圈變數也不會再改變

如果迴圈是採用break;語句結束的,迴圈結束後迴圈變數應該落在數字範圍內

如果編寫迴圈時不知道迴圈要重複的次數,就可以編寫死迴圈,在迴圈合適的時候用break;語句結束迴圈

迴圈裡使用continue;語句直接跳到迴圈大括號的末尾,本次迴圈剩下的語句都不執行

1 #include

2 int main()

9        printf("%d\n",num+10);

10     }

11    printf("num is %d\n",num);

12    return 0;

13 }

作業:編寫程式計算雞兔同籠的問題

一共40個頭,100隻腳

計算出兔子和雞各有多少只

1 #include

2 int main()

8     }

printf("兔子有%d只,\n雞有%d只\n",rabbit,40-rabbit);   

9    int tu=0,ji=0;

10    for(tu=0;tu<=40;tu++)

15            else continue;

16        }

17     }

18    return 0;

19 }

兩種方法,選變數少的,**量少的!!!

Day5 分支語句和邏輯運算子

將variable value 反轉為value variable,當少輸入乙個等號時,編譯器會報錯,有助於幾時發現錯誤。的優先順序比關係運算子低,所以不需要使用括號。編譯器想修改左側的值,再對右側的值進行判定 如果左側表示式為true,則不判定右側表示式。同上,如果左側表示式為false,則不判定...

day4 分支和迴圈

可以判斷奇偶性 流程控制 順序執行,分支結構 if 迴圈結構 for,while python中實現分支結構的只有一種if if單分支結構 雙分支結構 多分支結構 for 變數 in 序列 迴圈體讓變數去序列中取值,乙個乙個取,取完為止,每取乙個值執行乙個迴圈 練習3 統計100 200能夠被3整除...

Day04 分支和迴圈

順序結構 從上往下依次執行 分支結構 根據不同的條件,執行不同的語句 迴圈結構 根據指定的條件,重複執行某段 語法 if 表示式 執行語句 說明 要麼執行,要麼不執行,當表示式成立的之後,則執行語句 如果表示式不成立,則直接跳過整個if語句繼續執行後面的 單分支 num1 50 num2 60 需求...