日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

C语言流程控制

發(fā)布時(shí)間:2025/7/14 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言流程控制 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

C語(yǔ)言流程控制

一、流程控制結(jié)構(gòu)

(1)順序結(jié)構(gòu):按書寫順序執(zhí)行每一條語(yǔ)句。

(2)選擇結(jié)構(gòu):對(duì)給定的條件進(jìn)行判斷,根據(jù)判斷結(jié)果決定執(zhí)行哪一段代碼。

(3)循環(huán)結(jié)構(gòu):在給定條件成立的情況下,反復(fù)執(zhí)行某一段代碼。

二、選擇結(jié)構(gòu)-if

(一)if簡(jiǎn)單使用

1)?第一種結(jié)構(gòu):

a)?如果條件為真,就執(zhí)行后面的語(yǔ)句,否則不執(zhí)行。

if(條件)

{

語(yǔ)句1;

語(yǔ)句2;

····

}

2)?第二種結(jié)構(gòu):

a)?如果條件成立就執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2。

if(條件)

{

語(yǔ)句1;

}

else

{

語(yǔ)句2;

}

3)?第三種結(jié)構(gòu):

a)?先判斷條件1,若成立則執(zhí)行語(yǔ)句1,其它不執(zhí)行;若條件1不成立,則檢查條件2···,【注意】如果條件3成立,則說(shuō)明前面的都不成立。所有的語(yǔ)句塊只有一個(gè)會(huì)被執(zhí)行。

if(條件1)

{

語(yǔ)句1;

}

else?if(條件2)

{

語(yǔ)句2;

}

else?(條件3)

{

語(yǔ)句3;

}

4)?第四種結(jié)構(gòu):

a)?在這種情況下,當(dāng)條件成立,只執(zhí)行語(yǔ)句1,語(yǔ)句2不屬于次條件結(jié)構(gòu),但不推薦此種寫法。

If(條件)

語(yǔ)句1;

語(yǔ)句2;

?

(二)if使用注意

?

①.?比較大小時(shí),可以把常量值放在左邊,變量值放在右邊以避免錯(cuò)誤。因?yàn)閕f(a==0)也容易被寫成if(a=0),而這種情況,編譯器并不會(huì)報(bào)錯(cuò),推薦使用if(0==a)這種寫法。

②.?注意賦值運(yùn)算符,不要把=寫成是==。

③.?If(條件)后面不要加分號(hào),這代表是一個(gè)空語(yǔ)句,后面的代碼塊將成為一個(gè)獨(dú)立的代碼塊。如if(條件);{.....}//需要多加注意

④.?注意作用域的問(wèn)題,如果要在if后面定義新的變量,則一定要使用大括號(hào)。

if(10>6)

{

Int?a;//a的作用域在代碼塊結(jié)束后失效

}

Printf(“a=%d”,a);//編譯器報(bào)錯(cuò),找不到標(biāo)識(shí)符

?

if(10>6)

Int?a; //這種情況下報(bào)錯(cuò),a的作用域不明確

Printf(“a=%d”,a); //編譯器報(bào)錯(cuò),找不到標(biāo)識(shí)符

?

⑤.?If(0){...}隨便挑一個(gè)數(shù)值也可以做條件

(三)If結(jié)構(gòu)練習(xí)

問(wèn)題:輸入一個(gè)整數(shù)seore代表分?jǐn)?shù),根據(jù)分?jǐn)?shù)輸出等級(jí)(A-E)。

A?90-100? B80-89 C70-79 D60-69 E0-60

代碼:

復(fù)制代碼1 #include<stdio.h>2 3 int main()4 5 {6 7 //定義變量存儲(chǔ)分?jǐn)?shù)值8 9 int score; 10 11 //提示輸入 12 13 printf("請(qǐng)輸入分值:\n"); 14 15 //接受輸入 16 17 scanf("%d",&score); 18 19 //判斷等級(jí) 20 21 if(score>=90&&score<=100) 22 23 printf("A\n"); 24 25 else if(score>=80) 26 27 printf("B\n"); 28 29 else if(score>=70) 30 31 printf("C\n"); 32 33 else if(score>=60) 34 35 printf("D\n"); 36 37 else 38 39 printf("E\n"); 40 41 return 0; 42 43 }

?

?

三、選擇結(jié)構(gòu)-switch

(一)switch結(jié)構(gòu)

Switch(值) //通常是變量

{

Case?數(shù)值1:

語(yǔ)句1;

Break;

Case?數(shù)值2:

語(yǔ)句2;

Break;

Case?數(shù)值3:

語(yǔ)句3;

Break;

Default?:

語(yǔ)句4;

Break;

}

解說(shuō):該結(jié)構(gòu)把數(shù)值與數(shù)值1進(jìn)行比較,若相等,則執(zhí)行后面的所有語(yǔ)句,直到遇見break語(yǔ)句跳出整個(gè)循環(huán),若前面的條件都不滿足,則最終會(huì)執(zhí)行default后面的語(yǔ)句。如果不寫break語(yǔ)句,則后面的語(yǔ)句會(huì)接連執(zhí)行,直到遇到break語(yǔ)句或者是全部語(yǔ)句執(zhí)行完畢,只要前面的條件成立,則后面的判斷就直接被忽略。

(二)Switch使用注意

Char?c=‘A’;

Switch(c)

{

Case?‘A’:

語(yǔ)句1;

Break;

Case??65://不能這樣寫,因?yàn)椤瓵’的ASCII值就是65,會(huì)報(bào)錯(cuò)

語(yǔ)句2;

Break;

Case?數(shù)值3:

Int?a=10;

//a的作用域不明確報(bào)錯(cuò),c語(yǔ)言檢查變量的作用域根據(jù){}決定,這里可以加{}

Break;

Default?:

語(yǔ)句4;

Break;

?

}

注意:如果要在case后面的語(yǔ)句中定義變量,則必須使用大括號(hào)包住。

(三)switch結(jié)構(gòu)練習(xí)

問(wèn)題:輸入一個(gè)整數(shù)seore代表分?jǐn)?shù),根據(jù)分?jǐn)?shù)輸出等級(jí)(A-E)。

A?90-100? B80-89 C70-79 D60-69 E0-60

代碼:

1 #include<stdio.h>2 3 int main()4 5 {6 7 //定義變量存儲(chǔ)分?jǐn)?shù)值8 9 int score; 10 11 //提示輸入 12 13 printf("請(qǐng)輸入分值:\n"); 14 15 //接受輸入 16 17 scanf("%d",&score); 18 19 //判斷等級(jí) 20 21 switch(score/10) 22 23 { 24 25 case 10: 26 27 case 9: 28 29 printf("A\n"); 30 31 case 8: 32 33 printf("B\n"); 34 35 break; 36 37 case 7: 38 39 printf("C\n"); 40 41 break; 42 43 case 6: 44 45 printf("D\n"); 46 47 break; 48 49 default: 50 51 printf("E\n"); 52 53 break; 54 55 } 56 57 return 0; 58 59 }

?

【對(duì)比】if與switch:

1.?If語(yǔ)句能夠完成的功能,switch有時(shí)并不能夠完成,如判斷if(a>100)

2.?在有些情況下,if語(yǔ)句和switch語(yǔ)句可以互換

3.?Switch語(yǔ)句能完成的功能,if語(yǔ)句都可以完成

?

四、循環(huán)結(jié)構(gòu)-while

(一)簡(jiǎn)單使用

While(條件)

{

語(yǔ)句;

}

解說(shuō):先判斷條件是否成立,成立則執(zhí)行,執(zhí)行完代碼后再次判斷條件是否成立(判斷條件-》執(zhí)行代碼塊-》判斷條件-》執(zhí)行代碼塊···)1.首先確定循環(huán)執(zhí)行的操作,2.在確定約束條件,即需要循環(huán)多少次,3.定義一個(gè)變量來(lái)記錄循環(huán)的次數(shù)。

提示:在while循環(huán)體內(nèi)使用if...break(跳出整個(gè)循環(huán))或if...continue語(yǔ)句(跳出本次循環(huán),繼續(xù)下一次循環(huán)判斷)。

While結(jié)構(gòu)的運(yùn)行原理:

①.?如果一開始條件不成立,則永遠(yuǎn)不會(huì)執(zhí)行循環(huán)體。

②.?如果條件成立,則執(zhí)行一次循環(huán)體,執(zhí)行完畢后再次判斷條件是否成立。

③.?Break:直接退出整個(gè)循環(huán)。

④.?Continue:結(jié)束當(dāng)前循環(huán)體,進(jìn)行下一輪循環(huán)判斷。

(二)使用注意

1)?While(1){.....}是一個(gè)死循環(huán)

2)?While(a<10);{...}在條件后面加逗號(hào)表示循環(huán)體是一個(gè)空語(yǔ)句,而非{}部分

3)?While條件語(yǔ)句后推薦使用{},否則只有第一條語(yǔ)句時(shí)循環(huán)體

4)?最簡(jiǎn)單的死循環(huán)??while(1);//永遠(yuǎn)執(zhí)行空語(yǔ)句,讓程序崩潰

(三)While練習(xí)

問(wèn)題:編程實(shí)現(xiàn),提示輸入一個(gè)正整數(shù)n,計(jì)算1+2+3+...n的值。

代碼:

1 #include<stdio.h>2 3 int main()4 5 {6 7 //定義變量保存用戶輸入的整數(shù)8 9 int n; 10 11 while(n<=0) 12 13 { 14 15 //提示輸入 16 17 printf("請(qǐng)輸入一個(gè)正整數(shù):\n"); 18 19 //接受輸入 20 21 scanf("%d",&n); 22 23 } 24 25 int sum=0; 26 27 int number=0;//默認(rèn)被加的數(shù)值 28 29 while(number<n) 30 31 { 32 33 number++; 34 35 sum=sum+number; 36 37 } 38 39 printf("計(jì)算結(jié)果為:%d\n",sum); 40 41 return 0; 42 43 }

?

?

五、循環(huán)結(jié)構(gòu)-do?while

Do

{

語(yǔ)句

}while(條件)

特點(diǎn):do?while循環(huán)至少會(huì)執(zhí)行一次循環(huán)體

?

六、循環(huán)結(jié)構(gòu)-for

(一)基本使用

for(語(yǔ)句1,條件,語(yǔ)句2)

{

循環(huán)體

}

語(yǔ)句1:一般為初始化語(yǔ)句

語(yǔ)句2:一般為增量語(yǔ)句(執(zhí)行完循環(huán)體后再執(zhí)行的語(yǔ)句)

For循環(huán)原理:

1)?For循環(huán)一開始就會(huì)執(zhí)行語(yǔ)句1(整個(gè)for循環(huán)只會(huì)執(zhí)行一次)

2)?判斷條件是否成立,若成立,則執(zhí)行一次循環(huán)體,然后執(zhí)行語(yǔ)句2,再次判斷條件是否成立,若條件不成立則結(jié)束循環(huán)

3)?順序?yàn)?#xff1a;(語(yǔ)句1-》判斷條件-》循環(huán)體—》語(yǔ)句2-》判斷條件-》循環(huán)體···)

【對(duì)比】for和while:

在性能上,for循環(huán)稍勝一籌,因?yàn)閣hile循環(huán)只能使用外部的變量,而for循環(huán)可以對(duì)變量進(jìn)行及時(shí)回收。

?

(二)for使用注意

①.?不要隨便在for語(yǔ)句后面寫上分號(hào),如for();{....}

②.?定義變量的作用域不明確錯(cuò)誤

for(int?i=0;i<5;i++)

Int?a=10; //編譯器報(bào)錯(cuò),變量作用域不明確

③.?For語(yǔ)句中最簡(jiǎn)單的死循環(huán)for(;;);

④.?需要注意變量定義的作用域

Int?a=10;

For(int?i=0,int?a=9;i<5;i++)

{

Int?a=10;

Printf(“a=%d\n”,a);//這里打印的a的值是多少?

}

?

(三)For循環(huán)嵌套

用以輸出特定格式的內(nèi)容,如QQ好友列表等,提升可擴(kuò)展性。

For(in?i=0;i<5;i++)

{

//外面的循環(huán)控制行數(shù)

Printf(“好友列表%d\n”,i);

//內(nèi)部的循環(huán)控制列數(shù)

For(int?j=1;j<=6;j++)

{

Printf(“好友%d\n”,j);

}

}

(四)For練習(xí)

使用for循環(huán)輸出九九乘法表。//先控制行數(shù),在控制列數(shù)

代碼:

復(fù)制代碼1 #include<stdio.h>2 3 int main()4 5 {6 7 for(int i=1;i<=9;i++)8 9 { 10 11 for(int j=1;j<=i;j++) 12 13 { 14 15 printf("%dx%d=%d\t",i,j,i*j); 16 17 } 18 19 printf("\n"); 20 21 } 22 23 return 0; 24 25 } 復(fù)制代碼

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/LifeTechnologySupporter/p/9655734.html

總結(jié)

以上是生活随笔為你收集整理的C语言流程控制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。