日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

C语言内功心法二

發(fā)布時(shí)間:2025/3/11 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言内功心法二 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

循環(huán)結(jié)構(gòu)之while循環(huán)

反復(fù)不停的執(zhí)行某個(gè)動(dòng)作就是江湖人稱的循環(huán)?。

C語(yǔ)言中有三種循環(huán)結(jié)構(gòu),先看一下C語(yǔ)言while循環(huán)的結(jié)構(gòu)

?

其中表達(dá)式表示循環(huán)條件,執(zhí)行代碼塊為循環(huán)體

while語(yǔ)句的語(yǔ)義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí), 執(zhí)行循環(huán)體代碼塊。

  • while語(yǔ)句中的表達(dá)式一般是關(guān)系表達(dá)或邏輯表達(dá)式,當(dāng)表達(dá)式的值為假時(shí)不執(zhí)行循環(huán)體,反之則循環(huán)體一直執(zhí)行。
  • 一定要記著在循環(huán)體中改變循環(huán)變量的值,否則會(huì)出現(xiàn)死循環(huán)(無(wú)休止的執(zhí)行)。
  • 循環(huán)體如果包括有一個(gè)以上的語(yǔ)句,則必須用{}括起來(lái),組成復(fù)合語(yǔ)句。
  • 循環(huán)結(jié)構(gòu)之do-while循環(huán)

    C語(yǔ)言中的do-while循環(huán),一般形式如下:

    ?

    do-while循環(huán)語(yǔ)句的語(yǔ)義是:

    它先執(zhí)行循環(huán)中的執(zhí)行代碼塊,然后再判斷while中表達(dá)式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do-while循環(huán)至少要執(zhí)行一次循環(huán)語(yǔ)句

    注意:mtianyan: 使用do-while結(jié)構(gòu)語(yǔ)句時(shí),while括號(hào)后必須有分號(hào)。

    循環(huán)結(jié)構(gòu)之for循環(huán)(一)

    c語(yǔ)言中for循環(huán)一般形式:

    ?

    它的執(zhí)行過(guò)程如下:

  • 執(zhí)行表達(dá)式1,對(duì)循環(huán)變量做初始化;
  • 判斷表達(dá)式2,若其值為真(非0),則執(zhí)行for循環(huán)體中執(zhí)行代碼塊,然后向下執(zhí)行;若其值為假(0),則結(jié)束循環(huán);
  • 執(zhí)行表達(dá)式3,(i++)等對(duì)于循環(huán)變量進(jìn)行操作的語(yǔ)句;
  • 執(zhí)行for循環(huán)中執(zhí)行代碼塊后執(zhí)行第二步;第一步初始化只會(huì)執(zhí)行一次。
  • 循環(huán)結(jié)束,程序繼續(xù)向下執(zhí)行。
  • 注意:for循環(huán)中的兩個(gè)分號(hào)一定要寫

    循環(huán)結(jié)構(gòu)之for循環(huán)(二)

    在for循環(huán)中:

    • 表達(dá)式1是一個(gè)或多個(gè)賦值語(yǔ)句,它用來(lái)控制變量的初始值
    • 表達(dá)式2是一個(gè)關(guān)系表達(dá)式,它決定什么時(shí)候退出循環(huán);
    • 表達(dá)式3是循環(huán)變量的步進(jìn)值,定義控制循環(huán)變量每循環(huán)一次后按什么方式變化。
    • 這三部分之間用分號(hào) ; 分開。

    使用for語(yǔ)句應(yīng)該注意

  • for循環(huán)中的“表達(dá)式1、2、3”均可不寫為空,但兩個(gè)分號(hào)(;;)不能缺省。
  • 省略“表達(dá)式1(循環(huán)變量賦初值)”,表示不對(duì)循環(huán)變量賦初始值。
  • 省略“表達(dá)式2(循環(huán)條件)”,不做其它處理,循環(huán)一直執(zhí)行(死循環(huán))。
  • 省略“表達(dá)式3(循環(huán)變量增減量)”,不做其他處理,循環(huán)一直執(zhí)行(死循環(huán))。
  • 表達(dá)式1可以是設(shè)置循環(huán)變量的初值的賦值表達(dá)式,也可以是其他表達(dá)式
  • 表達(dá)式1和表達(dá)式3可以是一個(gè)簡(jiǎn)單表達(dá)式也可以是多個(gè)表達(dá)式以逗號(hào)分割。
  • ?

  • 表達(dá)式2一般是關(guān)系表達(dá)式邏輯表達(dá)式,但也可是數(shù)值表達(dá)式或字符表達(dá)式,只要其值非零,就執(zhí)行循環(huán)體。
  • 各表達(dá)式中的變量一定要在for循環(huán)之前定義
  • 怎么獲得一個(gè)數(shù)的百位,十位和個(gè)位

    • 百位數(shù):num/100 可以獲得,因?yàn)?int 是整數(shù)型,小數(shù)部分會(huì)省略。比如 765/100 的結(jié)果是7
    • 十位數(shù):num%100/10 。比如765%100先得到65,65/10得到6
    • 個(gè)位數(shù):num%10。765%10得到5

    循環(huán)結(jié)構(gòu)之三種循環(huán)比較

    while, do-while和for三種循環(huán)在具體的使用場(chǎng)合上是有區(qū)別的,如下:

    • 知道循環(huán)次數(shù)的情況下更適合使用for循環(huán);
  • 在不知道循環(huán)次數(shù)的情況下適合使用while或者do-while循環(huán):
    • 如果有可能一次都不循環(huán)應(yīng)考慮使用while循環(huán)
    • 如果至少循環(huán)一次應(yīng)考慮使用do-while循環(huán)。

    但是從本質(zhì)上講,while,do-while和for循環(huán)之間是可以相互轉(zhuǎn)換的。

    循環(huán)結(jié)構(gòu)之多重循環(huán)

    多重循環(huán)就是在循環(huán)結(jié)構(gòu)的循環(huán)體中又出現(xiàn)循環(huán)結(jié)構(gòu)。

    在實(shí)際開發(fā)中一般最多用到三層重循環(huán)

    因?yàn)檠h(huán)層數(shù)越多,運(yùn)行時(shí)間越長(zhǎng),程序越復(fù)雜,所以一般用2-3層多重循環(huán)就可以了。另外不同循環(huán)之間也是可以嵌套的。

    多重循環(huán)在執(zhí)行的過(guò)程中,外層循環(huán)為父循環(huán),內(nèi)層循環(huán)為子循環(huán)

    **父循環(huán)一次,子循環(huán)需要全部執(zhí)行完,直到跳出循環(huán)。**父循環(huán)再進(jìn)入下一次,子循環(huán)繼續(xù)執(zhí)行...


    如果大家對(duì)C/C++感興趣的話,本小編這里準(zhǔn)備了一大堆的學(xué)習(xí)資料可以免費(fèi)分享給有需要的朋友們,學(xué)習(xí)群:前面八七三,中間五二一,后面八零三。連起來(lái)就可進(jìn)群然后免費(fèi)領(lǐng)取一份學(xué)習(xí)資料哦!!!!

    mtianyan: 打印三角形星星堆

    #include <stdio.h> int main() {int i, j, k;for(i=1; i<5; i++){/* 觀察每行的空格數(shù)量,補(bǔ)全循環(huán)條件 */for(j=i; j<5; j++) {printf(" "); //輸出空格}/* 觀察每行*號(hào)的數(shù)量,補(bǔ)全循環(huán)條件 */for( k=0;k<2*i-1;k++) {printf("*"); //每行輸出的*號(hào)}printf("\n"); //每次循環(huán)換行}return 0; } 復(fù)制代碼

    使用for循環(huán)打印9×9乘法表

    #include <stdio.h> int main() { // 定義相乘數(shù)字i,j以及結(jié)果resultint i, j, result;for(i=9;i>=1;i--){for(j=1;j<=i;j++){printf("%d*%d=%d ",i,j,result=i*j);}printf("\n");}return 0; } 復(fù)制代碼

    結(jié)束語(yǔ)句之break語(yǔ)句

    那么循環(huán)5次的時(shí)候,需要中斷不繼續(xù)訓(xùn)練。在C語(yǔ)言中,可以使用break語(yǔ)句進(jìn)行該操作.

    使用break語(yǔ)句時(shí)注意以下幾點(diǎn):

    • 在沒(méi)有循環(huán)結(jié)構(gòu)的情況下,break不能用在單獨(dú)的if-else語(yǔ)句中。
  • 在多層循環(huán)中,一個(gè)break語(yǔ)句只跳出當(dāng)前循環(huán)。
  • 結(jié)束語(yǔ)句之continue語(yǔ)句

    那么循環(huán)5次的時(shí)候,需要中斷后繼續(xù)訓(xùn)練。在C語(yǔ)言中,可以使用continue語(yǔ)句進(jìn)行該操作

    continue語(yǔ)句的作用是結(jié)束本次循環(huán)開始執(zhí)行下一次循環(huán)。

    break語(yǔ)句與continue語(yǔ)句的區(qū)別是:

    break是跳出當(dāng)前整個(gè)循環(huán),continue是結(jié)束本次循環(huán)開始下一次循環(huán)。

    分支結(jié)構(gòu)之switch語(yǔ)句

    switch語(yǔ)句結(jié)構(gòu)如下:

    ?

    mtianyan: switch語(yǔ)句時(shí)還應(yīng)注意以下幾點(diǎn):

  • 在case后的各常量表達(dá)式的值不能相同,否則會(huì)出現(xiàn)錯(cuò)誤。
  • 在case子句后如果沒(méi)有break;會(huì)一直往后執(zhí)行**一直到遇到break;**才會(huì)跳出switch語(yǔ)句。
  • switch后面的表達(dá)式語(yǔ)句只能是整型或者字符類型
  • 在case后,允許有多個(gè)語(yǔ)句,**可以不用{}**括起來(lái)。
  • 各case和default子句的先后順序可以變動(dòng),而不會(huì)影響程序執(zhí)行結(jié)果。
  • default子句可以省略不用。
  • mtianyan: switch與if語(yǔ)句的應(yīng)用(計(jì)算是該年的第幾天)

    #include <stdio.h> int main() { /* 定義需要計(jì)算的日期 */int date = 0;int year = 2008;int month = 8;int day = 8;switch(month){case 12:date+=30;case 11:date+=31;case 10:date+=30;case 9:date+=31;case 8:date+=31;case 7:date+=30;case 6:date+=31;case 5:date+=30;case 4:date+=31;case 3:if((year%4==0&&year%100!=0)||year%400==0){date+=29;}else{date+=28;}case 2:date+=31;case 1:date+=day;printf("%d年%d月%d日是該年的第%d天",year,month,day,date);break;default:printf("error");break;}return 0; } 復(fù)制代碼

    正確: continue只能用在循環(huán)體內(nèi)

    臭名遠(yuǎn)揚(yáng)之goto語(yǔ)句

    C語(yǔ)言中也有這樣的語(yǔ)句,就是goto語(yǔ)句,goto語(yǔ)句是一種無(wú)條件分支語(yǔ)句.

    goto 語(yǔ)句的使用格式為:

    goto 語(yǔ)句標(biāo)號(hào); 復(fù)制代碼

    ?

    自創(chuàng)函數(shù)

    C語(yǔ)言提供了大量的庫(kù)函數(shù): 比如stdio.h提供輸出函數(shù)

    自定義函數(shù)的一般形式:

    ?

    注意:

  • [] 包含的內(nèi)容可以省略,數(shù)據(jù)類型說(shuō)明省略,默認(rèn)是 int 類型函數(shù); 參數(shù)省略表示該函數(shù)是無(wú)參函數(shù),參數(shù)不省略表示該函數(shù)是有參函數(shù);
  • 函數(shù)名稱遵循標(biāo)識(shí)符命名規(guī)范;
  • mtianyan: 自定義函數(shù)盡量放在 main 函數(shù)之前,如果要放在main函數(shù)后面的話, 需要在main函數(shù)之前先聲明自定義函數(shù),聲明格式為:
  • [數(shù)據(jù)類型說(shuō)明] 函數(shù)名稱([參數(shù)]); 復(fù)制代碼

    函數(shù)調(diào)用

    我們需要用到自定義的函數(shù)的時(shí)候,就得調(diào)用它,那么在調(diào)用的時(shí)候就稱之為函數(shù)調(diào)用

    在C語(yǔ)言中,函數(shù)調(diào)用的一般形式為:

    函數(shù)名([參數(shù)]); 復(fù)制代碼

    注意:

    • 對(duì)無(wú)參函數(shù)調(diào)用的時(shí)候可以將[]包含的省略。
  • []中可以是**常數(shù),變量或其它構(gòu)造類型數(shù)據(jù)及表達(dá)式,**多個(gè)參數(shù)之間用逗號(hào)分隔。
  • 原文鏈接:https://juejin.im/post/5b4fea7ae51d45191b6133d0

    總結(jié)

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

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