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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

C语言再学习 -- 分支与跳转语句

發(fā)布時(shí)間:2025/3/15 编程问答 9 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言再学习 -- 分支与跳转语句 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、if語句

形式1:

if (邏輯表達(dá)式)

執(zhí)行語句

如果邏輯表達(dá)式為真,則執(zhí)行執(zhí)行語句

形式2:

if (邏輯表達(dá)式)

執(zhí)行語句1

else

執(zhí)行語句2

如果邏輯表示是為真則執(zhí)行執(zhí)行語句1,否則執(zhí)行執(zhí)行語句2

形式3:

if (邏輯表達(dá)式1)

執(zhí)行語句1

else if (邏輯表達(dá)式2)

執(zhí)行語句2

else

執(zhí)行語句3

如果邏輯表達(dá)式1為真,則自行執(zhí)行語句1,如果邏輯表達(dá)式1為假而邏輯表達(dá)式2為真,則執(zhí)行執(zhí)行語句2,否則,如果兩個(gè)表達(dá)式都為假,執(zhí)行執(zhí)行語句3


關(guān)于if語句形式2分析:

規(guī)則是如果沒有花括號(hào)致命,else與和它最近的一個(gè)if相匹配。如果希望在if和else之間有多條語句,必須使用花括號(hào)創(chuàng)建一個(gè)代碼塊。下面的結(jié)構(gòu)違反了C語法,因?yàn)榫幾g器期望if和else之間只有一條語句。

if (x >0) printf ("x = \n"); x++; else printf ("x <= 0");

編譯器會(huì)把printf()語句看作if語句的部分,將x++語句看作一條單獨(dú)的語句,而不把它作為if語句的一部分。然后會(huì)認(rèn)為else沒有所屬的if,這是個(gè)錯(cuò)誤,應(yīng)該使用花括號(hào)?;蛘邊⒖磀o while (0)語句。

if (x >0) { printf ("x = \n"); x++; } else printf ("x <= 0");

判斷條件通常是一個(gè)關(guān)系表達(dá)式,也就是用一個(gè)關(guān)系運(yùn)算符構(gòu)成的表達(dá)式,例如:< 或者 ==。利用C的邏輯運(yùn)算符,可以作何多個(gè)關(guān)系表達(dá)式以創(chuàng)建更復(fù)雜的判斷。

需要注意的幾點(diǎn):

1、賦值運(yùn)算符和邏輯運(yùn)算符

例如:

if (5 = n) ? ?語法錯(cuò)誤

if (5 == n) ?檢查n的值是否為5

2、 ?if(n != 0)可用if (n)代替

3、if (n >= 9 && n <= 100) 不要寫成 if (90 <= n <= 100)

問題在于該代碼是語義錯(cuò)誤,我不是語法錯(cuò)誤,因?yàn)閷?duì)于<=運(yùn)算符的求值順序是由左到右的,所以會(huì)把該測(cè)試表達(dá)式解釋為如下形式:

(90 <= n) ?<= 100

子表達(dá)式90 <= n的值為1(真)或0(假)。任何一個(gè)值都小于100,因此不管n的值是什么,整個(gè)表達(dá)式總是為真,所以需要使用&&來檢查范圍。

例如: ?if (5 > 2 > 3) 布爾值為0(假).


注意: 零值表示“假”,非零值表示“真”,負(fù)數(shù)也是非零值。

#include <stdio.h> int main (void) { if (-1){printf ("111111111\n");}printf ("222222222\n");return 0; } 輸出結(jié)果: 111111111 222222222

二、循環(huán)輔助手段:continue和break

1、continue語句

continue命令可以與三種循環(huán)形式中的任何一種一起作用,但是不能喝switch語句一起使用。他導(dǎo)致程序控制跳過循環(huán)中的剩余語句。對(duì)于while和for循環(huán),開始下一個(gè)循環(huán)周期。對(duì)于do while循環(huán),對(duì)退出條件進(jìn)行判斷,如果必要,開始下一個(gè)循環(huán)周期。

用處:可以在主語語句中消除一級(jí)縮排。當(dāng)語句很長(zhǎng)或者已經(jīng)有很深的嵌套時(shí),作為占位符,使代碼根據(jù)可讀性:

while (getchar () != '\n')

continue;

2、break語句

循環(huán)中的break語句導(dǎo)致程序終止包含它的循環(huán),并進(jìn)行程序的下一階段。break命令可以與三種循環(huán)形式中的任何一種以及switch語句一起使用。它導(dǎo)致程序控制跳過包含它的循環(huán)或switch語句的剩余部分,繼續(xù)執(zhí)行緊跟在循環(huán)或switch后的下一條命令。

break語句實(shí)質(zhì)上是switch語句的附屬物,順便提一下,break語句用于循環(huán)和switch中,而continue僅用于循環(huán)。

例如:在if語句中使用continue會(huì)出現(xiàn): 錯(cuò)誤:continue語句出現(xiàn)在循環(huán)以外。


三、多重選擇:switch和break


以上面的例子來說明switch語句:

如果i為整形值1或者2,則打印22222。如果它的值為3,則打印33333和44444(因?yàn)殡scase 3后沒有break語句,所以流程繼續(xù)到隨后的語句),如果它的值為4,則打印44444,。對(duì)于其他值,僅打印hello world

#include <stdio.h> int main (void) { int i = 0; scanf ("%d", &i); switch (i) { case 1: // printf ("11111\n"); // break; case 2: printf ("22222\n"); break; case 3: printf ("33333\n"); // break; case 4: printf ("44444\n"); break; default: printf ("hello world\n"); break; } return 0; }

//示例 switch (enSize) {case PIC_QCIF:stH264Cbr.u32BitRate = 256; /* average bit rate */break;case PIC_QVGA: /* 320 * 240 */case PIC_CIF: stH264Cbr.u32BitRate = 512;break;case PIC_D1:case PIC_VGA: /* 640 * 480 */stH264Cbr.u32BitRate = 1024*2;break;case PIC_HD720: /* 1280 * 720 */stH264Cbr.u32BitRate = 1024*2;break;case PIC_HD1080: /* 1920 * 1080 */stH264Cbr.u32BitRate = 1024*4;break;case PIC_5M: /* 2592 * 1944 */stH264Cbr.u32BitRate = 1024*8;break; default :stH264Cbr.u32BitRate = 1024*4;break; }

總體注解:

程序控制按照邏輯表達(dá)式的值跳轉(zhuǎn)到相應(yīng)的case標(biāo)簽處。然后程序流程繼續(xù)通過所有剩余的語句,直達(dá)再次由break語句重定向。邏輯表達(dá)式和case標(biāo)簽必須都是整型值(包括類型char),并且標(biāo)簽必須是常量或者完全有常量組成的表達(dá)式。如果沒有表達(dá)式值相匹配的case標(biāo)簽,那么控制定位到標(biāo)簽為default的語句,如果它存在的話。否則,控制傳遞給緊跟著switch語句的下一條語句。

每個(gè) switch 語句中只能出現(xiàn)一條 default 子句。但是,它可以出現(xiàn)在語句列表的任何位置,而且語句流會(huì)像貫穿一個(gè) case 標(biāo)簽一樣貫穿 default 子句。

四、goto語句

不要輕易使用

可以了解一下:

while(1)、for( ; ; )、goto這三者可作為死循環(huán)?

總結(jié)

以上是生活随笔為你收集整理的C语言再学习 -- 分支与跳转语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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