一判没、【掌握】復(fù)習(xí)昨天知識
1凛虽、程序的結(jié)構(gòu)
程序默認從上到下順序執(zhí)行(順序結(jié)構(gòu))
程序的結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)偿短、循環(huán)結(jié)構(gòu)
2欣孤、if分支語句
程序執(zhí)行的過程中可以有多個選擇
格式:
if(表達式){
語句塊;
}
進行表達式的求值:如果表達式的值為非0(真)
會執(zhí)行語句塊 0 (假) 不會執(zhí)行語句塊,
3、if分支語句的幾種形式
·1)最簡單的,要不執(zhí)行,要不是不執(zhí)行
if(表達式){
語句塊;
}
·2)if.....else......
if(表達式){
語句塊1;
}else{
語句塊2;
}
進行表達式的求值:如果表達式的值為(真)
會執(zhí)行語句塊1昔逗; 0 (假) 會執(zhí)行語句塊2
注意:語句塊1和語句2只可能被執(zhí)行一次
3)if...else...的嵌套問題
if(表達式1){
if(表達式2){
//表達式1值為1,并且表達式2值為1
語句塊1;
}else{
語句塊2;
//表達式1值為1,但是表達式2的值為0
}
}else{
語句塊3;
//表達式1為0的時候
}
4)if..... else if ......else....
if(表達式1){
語句塊1;
//表達式1為真
}else
if(表達式2){
語句塊2;
//當表達式1不成立,但是表達式2成立
}else{
語句塊3;
//當表達式1和表達式2都不成立的時候
}
4降传、if注意點
1)if(1)、if(-1)永真 if(0) 永假
2)if語句不要加分號勾怒!if(表達式);
表示判斷完了什么都不做
- if后面的大括號可以省略婆排,省略大括號后,if語句的作用域只可以接一條語句笔链,并且這條語句不能是申明變量的段只。
4)if(表達式){int num=10;} printf("%d",num);(錯誤的)
5)if語句塊內(nèi)可以接多條語句
5、switch分支語句
也是用于條件判斷,當表達是的結(jié)果有多種情況,用switch比較方便一些
格式:
switch(表達式){
case
整型常量或者字符常量: 語句; .....
default:
//如果上面的條件都不滿足,執(zhí)行default
}
計算表達式的值,用這個值和case后的常量進行比較,如果這個值等于了某個常量值,會執(zhí)行case對應(yīng)的分支語句,遇到break;才結(jié)束,如果沒有遇到break,程序一直會往下執(zhí)行,直到switch語句結(jié)束
6鉴扫、switch的注意點
1)switch(表達式)
表達式:返回值是整型
2)case
常量 必須是常量并且必須是整型或字符 ,不能是float case 2.3:
可以放常量表達式,但是不允許:a+3
3)作用域的問題
case 3: {
int num=-1;
}
case
4:printf("%d\n",num); 這是不允許的
4)case分支語句可以有多句,可以使用大括號,也可以不使用
赞枕,如果不使用大括號,則不能進行變量的申明
二、【理解】循環(huán)結(jié)構(gòu)的基本介紹
1炕婶、循環(huán)結(jié)構(gòu)簡介
實際生活中的循環(huán):印刷1萬份報紙姐赡,跑5000米
程序中的循環(huán):要打印999句老師很帥
那么,怎么用循環(huán)來實現(xiàn)上面的這個需求呢柠掂?
int i = 0;
while (i < 999)
{
printf("老師好帥啊\n");
i++;
}
從上面的結(jié)果我們可以看到项滑,我們在程序中需要重復(fù)做什么事,就寫在大括號里就可以了陪踩,要重復(fù)多少次杖们,就改一改條件次數(shù)就改變了
循環(huán)結(jié)構(gòu)簡單來說就是:循環(huán)是一次又一次的執(zhí)行相同的代碼塊
2悉抵、構(gòu)成循環(huán)結(jié)構(gòu)的幾個條件:
一般來說一個循環(huán)需要以下幾部分構(gòu)成:
1)循環(huán)控制條件 進入循環(huán)以及退出循環(huán)的主要依據(jù),來控制是否需要進行循環(huán)
2)循環(huán)體 循環(huán)的過程中重復(fù)執(zhí)行的代碼段
3)能夠讓循環(huán)結(jié)束的語句(遞增肩狂、遞減、真姥饰、假等) 能夠讓循環(huán)條件為假的依據(jù),用來防止死循環(huán)
3傻谁、C語言中的循環(huán)語句
while語句;
do-while語句;
for語句;
三、【掌握】while循環(huán)結(jié)構(gòu)
1列粪、while循環(huán)的格式:
while
( 條件 )
{
語句1;
語句2;
....
}
2审磁、while循環(huán)使用方法:
1)while循環(huán)的特點:
如果while中的條件一開始就不成立,那么循環(huán)體中的語句永遠不會被執(zhí)行
2)while語句的語義是:
如果條件成立,就會執(zhí)行循環(huán)體中的語句(“循環(huán)體”就是while后面大括號{}中的內(nèi)容)。
然后再次判斷條件,重復(fù)上述過程,直到條件不成立就結(jié)束while循環(huán)
2)while循環(huán)的執(zhí)行步驟:
第1步:判斷條件是否為真岂座,如果為真态蒂,則轉(zhuǎn)向第2步,如果條件為假則轉(zhuǎn)向第3部
第2步:執(zhí)行循環(huán)體费什,執(zhí)行完畢后再轉(zhuǎn)向第1步
第3步:跳出循環(huán)钾恢,循環(huán)結(jié)束
避免使用死循環(huán)!
死循環(huán):循環(huán)條件永不變假
四鸳址、【理解】while循環(huán)的注意點
1瘩蚪、任何數(shù)值都真假性,注意防止死循環(huán)
while (-1) {
printf("死循環(huán)\n");
}
2稿黍、while
后如果只有一條語句它可以省略大括號
1)空語句它也是一條語句
2)while小闊號后面不可以直接寫分號
int
num = 0;
while
(num < 3)
{
printf("num
= %d\n",num); num++;
}
3)省略大括號時疹瘦,不能在下面直接寫申明變量的語句
while (1 < 3)
int
num = 5;
是錯誤的
3、作用域:內(nèi)部代碼塊中定義的變量不可以在外邊
代碼塊中訪問
while (1 < 3) {
int
a = 0;
}
printf("a =
%d\n",a);
4巡球、while語句后面不要加分號
while (1 < 3); 錯誤
五言沐、【理解】while循環(huán)課堂練習(xí)
習(xí)題一:計算1-100以內(nèi)(包含1和100)所有偶數(shù)的和
(能被2整除的數(shù)都叫偶數(shù))
習(xí)題二:請用戶輸入個任意整數(shù)N,打印出從1到這個整數(shù)N的所有平方表
例:用戶輸入4酣栈,那么則順序打印出1的平方的值為1呢灶,2的平方的值為4,3的平方的值為9钉嘹,4的平方的值為16
習(xí)題三:要求用戶輸入5個數(shù)字鸯乃,計算出這5個數(shù)字中最小的數(shù)字、最大的數(shù)字和平均數(shù)
習(xí)題四:讓用戶輸入一個數(shù)n和一個數(shù)m,計算從n到m之間的所有數(shù)之和
六缨睡、【掌握】do…while循環(huán)的基本介紹
1鸟悴、do ... while循環(huán)的基本格式
do{
語句1;
語句2;
....
}while ( 條件 );
注意:有分號!奖年!
2细诸、do...while語句用法
1)do...while語句的語義是:
當執(zhí)行到do-while循環(huán)時,首先會執(zhí)行一遍循環(huán)體中的語句(“循環(huán)體”就是do后面大括號{} 中的內(nèi)容)。接著判斷while中的條件,如果條件成立,就執(zhí)行循環(huán)體中的語句陋守。然后再次判
斷條件,重復(fù)上述過程,直到條件不成立就結(jié)束while循環(huán)
2)do-while循環(huán)的特點:
不管while中的條件是否成立,循環(huán)體中的語句至少會被執(zhí)行一遍
int i = 0;
while(i<0){
i++;
}
int i =0;
do{
i++;
}
while(i<10);
```
#####3)do-while的執(zhí)行過程:
第1步:先執(zhí)行循環(huán)體震贵,再跳轉(zhuǎn)到第2步
第2步:判斷條件是否為真,如果為真水评,跳轉(zhuǎn)第1步猩系,如果為假,跳轉(zhuǎn)第3步
第3步:跳出循環(huán)中燥,循環(huán)結(jié)束
#####3寇甸、do...while和while的對比
```
while
是先判斷再執(zhí)行 例:
int i=10;
while(i<10){
printf(i);
i++;
}
```
結(jié)果是什么都不打印,最終i的值為10
```
do-while
```
是先執(zhí)行再判斷
例:
```
int i =10;
do{
printf(i);
i++;
}while(i<10);
```
打印的是10,最終i=11
兩者的區(qū)別在于第一圈循環(huán)時,while是先判斷循環(huán)條件,再循環(huán).所以第一個程序什么都不打印. 而do-while則是先執(zhí)行后判斷.所以,第二個程序先打印10,然后i++然后跳出循環(huán).
####七、【理解】do…while的課堂練習(xí)
習(xí)題一:小蒼明天就要上舞臺表演了疗涉,老師打算讓她先試著表演一次看看拿霉,如果滿意就讓她回家,不滿意就讓她繼續(xù)練咱扣,直到滿意為止绽淘。(表演就用打印一句話代替)
習(xí)題二:用do...while語句重寫一次求1加到100的總和
八、【掌握】for循環(huán)簡單介紹
#####1闹伪、for循環(huán)的語法格式
C語言中的for語句使用最為靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全可以代替while語句沪铭。
一般形式:
for(表達式1;表達式2;表達式3) {
循環(huán)體;
}
#####2、for循環(huán)執(zhí)行過程
第1步: 先執(zhí)行表達式1祭往。
第2步:執(zhí)行表達式2,若其結(jié)果值為真(值為非0),則跳轉(zhuǎn)到第3步伦意。若為假(值為0),轉(zhuǎn)到第5步。
第3步: 執(zhí)行循環(huán)體硼补,再跳轉(zhuǎn)到第4步
第4步:執(zhí)行表達式3驮肉。
第5步:跳出循環(huán),循環(huán)結(jié)束

####3已骇、for循環(huán)的幾種形式
1)for語句最簡單的形式:
for(循環(huán)變量賦初值;
循環(huán)條件;
循環(huán)變量增值)
例如:
for(int i=1;i<=100;i++) sum=sum+i;

2)表達式省略(三個表達式都可以省略)
如:for(; ;)
語句相當于while(1) 語句,即不設(shè)初值,不判斷條件(認為表達式2為真值),循環(huán)變量不增值离钝。無終止地執(zhí)行循環(huán)體。
3)循環(huán)控制無關(guān)的任意表達式
表達式1和表達式3可以是一個簡單的表達式,也可以是逗號表達式,即包含一個以上的簡單表達
式,中間用逗號間隔褪储。如:
for(sum=0,i=1;i<=100;i++)
sum=sum+i;
或
for(i=0,j=100;i<=j;i++,j--) k=i+j;
表達式1和表達式3都是逗號表達式,各包含兩個賦值表達式,即同時設(shè)兩個初值,使兩個變量增值.
在逗號表達式內(nèi)按自左至右順序求解,整個逗號表達
式的值為其中最右邊的表達式的值卵渴。如:
```for(i=1;i<=100;i++,i++) sum=sum+i; ```
相當于
```for(i=1;i<=100;i=i+2) sum=sum+i; ```
####九、【理解】for循環(huán)課堂練習(xí)
習(xí)題一:讓用戶輸入一個數(shù)n和一個數(shù)m鲤竹,計算從n到m之間的所有數(shù)之和
習(xí)題二:求100到999之間的水仙花數(shù)
水仙花數(shù):abc = a*a*a + b*b*b + c*c*c
如:153 = 1*1*1 + 5*5*5 +3*3*3
####十浪读、【掌握】for循環(huán)的嵌套
#####1、for循環(huán)的嵌套
任何循環(huán)都如分支語句一樣,可以進行多層嵌套碘橘,但是在循環(huán)結(jié)構(gòu)中互订,用到最多的就是for循環(huán)的嵌套,并且在一般情況下,只有2層嵌套循環(huán)(主要用來控制行列)痘拆,不會超出3層仰禽。


#####2、利用for循環(huán)嵌套實現(xiàn)打印圖形
思考&實現(xiàn)1:
打印各種圖形

分析:
應(yīng)該打印5行
最多打印5列 每一行和每一列關(guān)系是什么?
列數(shù)<=行數(shù)



思考&實現(xiàn)2:
用戶輸入一個整數(shù)N,輸出如下圖形,如:N= 5
思路:
1)列數(shù)要等于行數(shù)
2)每一行的數(shù)字都是一樣的

#####思考&實現(xiàn)3:
用戶輸入一個整數(shù)N,輸出如下圖形,如:N= 5


####十一【掌握】循環(huán)的中斷語句
break和continue語句都可以用在循環(huán)中,用來跳出循環(huán)(結(jié)束循環(huán));break語句還可以用在switch語句中,用來跳出switch語句纺蛆。
##### 1吐葵、break語句用法
break語句通常用在循環(huán)語句和開關(guān)語句中。當break用于開關(guān)語句switch中時,可使程序跳
出switch而執(zhí)行switch以后的語句;break在switch 中的用法已在前面介紹開關(guān)語句時的例子中碰到,這里不再舉例桥氏。
-
注意:
//
if(表達式)else{ ...... break;......}
1)break語句對if-else的條件語句不起作用;
2)在多層循環(huán)中,一個break語句只向外跳一層温峭。
#####思考&實現(xiàn)1:
在圓中,當圓的半徑等于多少時识颊,圓的面積才會大于或等于100诚镰?(只考慮半徑為從1到10的情況)
#####思考:
r從1變到10 判斷面積是否不是>100 如果大于>100 循環(huán)要終止
面積 = 3.14*r*r;

#####2奕坟、continue 語句(結(jié)束本次循環(huán),繼續(xù)下次循環(huán)) 用法
continue語句的作用是跳過循環(huán)體中剩余的語句而繼續(xù)下一次祥款。continue語句只用在for、while月杉、do-while等循環(huán)體中,常與if條件語句一起使用,用來加速循環(huán)刃跛。
對比一下break和continue。
```
break的用法:
while(表達式1){
......
if(表達式2) break;
......
}
continue的用法:
while(表達式1){
......
if(表達式2) continue;
......
}
```
#####思考&實現(xiàn)1:
把100~200之間的不能被3整除的數(shù)輸出

####十二【掌握】for循環(huán)嵌套練習(xí)
第一題:打印九九乘法表

第二題:讓用戶輸入一個數(shù)N苛萎,輸出類似如下圖的等腰三角形(下圖N為6)
