詳解C語(yǔ)言 三大循環(huán) 四大跳轉(zhuǎn) 和判斷語(yǔ)句
三大循環(huán)for while 和 do{ }while;
四大跳轉(zhuǎn) :
無(wú)條件跳轉(zhuǎn)語(yǔ)句 go to;
跳出循環(huán)語(yǔ)句 break;
繼續(xù)跳出循環(huán)語(yǔ)句 continue;
返回值語(yǔ)句 return
判斷語(yǔ)句 if,if else,if else if else if...else
ifelse 組合
if(0 == x) if(0 == y) error(); else{ //program code }
else到底與那個(gè)if配對(duì) C語(yǔ)言有這樣的規(guī)定:
else 始終與同一括號(hào)內(nèi)最近的未匹配的if語(yǔ)句結(jié)合。
if語(yǔ)句后面的分號(hào)
if(NULL!= p) ; fun();
這里的fun()函數(shù)并不是在NULL != p 的時(shí)候被調(diào)用,而是任何時(shí)候都會(huì)被調(diào)用。問(wèn)題就出
在if 語(yǔ)句后面的分號(hào)上。在C 語(yǔ)言中,分號(hào)預(yù)示著一條語(yǔ)句的結(jié)尾,但是并不是每條C 語(yǔ)言
語(yǔ)句都需要分號(hào)作為結(jié)束標(biāo)志。if 語(yǔ)句的后面并不需要分號(hào),但如果你不小心寫(xiě)了個(gè)分號(hào),
編譯器并不會(huì)提示出錯(cuò)。因?yàn)榫幾g器會(huì)把這個(gè)分號(hào)解析成一條空語(yǔ)句。也就是上面的代碼實(shí)
際等效于:
if(NULL != p) { ; } fun();
switch、case 組合
if、else 一般表示兩個(gè)分支或是嵌套表示少量的分支,但如果分支很多的話……還是用
switch、case 組合。
基本格式為:
switch(variable) { case value1; //code; break; case value2; //code; break; case value3; //code; break; case value4; //code; break; default: break; }
1、case 語(yǔ)句后面不要忘記加break;
2、 最后必須使用default 分支。即使程序真的不需要default 處理,也應(yīng)該保留
語(yǔ)句:
default :
break;
這樣做并非畫(huà)蛇添足,可以避免讓人誤以為你忘了default處理應(yīng)該得要。
case后面必須是整型或字符型的常量或常量表達(dá)式。
do、while、for 關(guān)鍵字
C 語(yǔ)言中循環(huán)語(yǔ)句有三種:while 循環(huán)、do-while 循環(huán)、for 循環(huán)。
while 循環(huán):先判斷while 后面括號(hào)里的值,如果為真則執(zhí)行其后面的代碼;否則不執(zhí)
行。while(1)表示死循環(huán)。死循環(huán)有沒(méi)有用呢?看下面例子:
比如你開(kāi)發(fā)一個(gè)系統(tǒng)要日夜不停的運(yùn)行,但是只有操作員輸入某個(gè)特定的字符‘#'才
可以停下來(lái)。
while(1) { if(‘#'== GetInputChar()) { break; } }
break 與continue 的區(qū)別
break 關(guān)鍵字很重要,表示終止本層循環(huán)?,F(xiàn)在這個(gè)例子只有一層循環(huán),當(dāng)代碼執(zhí)行到
break 時(shí),循環(huán)便終止。
#include<stdio.h> int main() { flaot area,pi=3.1415926; int r; for(r=0;r<100;r++) { area=pi*r*r; if(area>100) //當(dāng)area>100時(shí)就跳出for循環(huán) break; } printf("area=%d\n",area); }
continue 表示終止本次(本輪)循環(huán)。當(dāng)代碼執(zhí)行到continue 時(shí),本輪循環(huán)終止,進(jìn)入下一輪循環(huán)。具有過(guò)濾功能。
#include<stdio.h> int main() { inti=0,sum=0; for(i=0;i<10;i++) { if(i%3==0)//當(dāng)i%3==0時(shí)就continue;繼續(xù)下一次循環(huán) 把0~10中3的整數(shù)倍濾除掉 { printf("i=%d",i); continue; } sum=sum+i; } printf("sum=%d\n",sum); }
do-while 循環(huán):先執(zhí)行do 后面的代碼,然后再判斷while 后面括號(hào)里的值,如果為真,
循環(huán)開(kāi)始;否則,循環(huán)不開(kāi)始。其用法與while 循環(huán)沒(méi)有區(qū)別,但相對(duì)較少用。
for 循環(huán):for 循環(huán)可以很容易的控制循環(huán)次數(shù),多用于事先知道循環(huán)次數(shù)的情況下
循環(huán)語(yǔ)句的注意點(diǎn)
長(zhǎng)循環(huán)在最內(nèi)層,效率高
for (col=0; col<5; col++ ) { for (row=0; row<100; row++) { sum = sum + a[row][col]; } }
長(zhǎng)循環(huán)在最外層,效率低
for (row=0; row<100; row++) { for ( col=0; col<5; col++ ) { sum = sum + a[row][col]; } }
循環(huán)要盡可能的短,要使代碼清晰,一目了然
For循環(huán)舉個(gè)例子 9*9乘法表
#include<stdio.h> int main() { int i,j,sum=0; printf("輸出9*9乘法表:\n"); for(i=1;i<10;i++) { for(j=1;j<=i;j++) { sum=i*j; printf("%d*%d=%d ",j,i,sum); } printf("\n"); } return 0; }
打印出:
輸出9*9乘法表:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=92*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
記得開(kāi)始學(xué)c語(yǔ)言時(shí)對(duì)于這些打印感覺(jué)很難,其實(shí)就是不會(huì)用for,沒(méi)有好的程序理解能力,也就不會(huì)想到這些算法,現(xiàn)在慢慢有了基礎(chǔ),對(duì)于這些小程序也就運(yùn)用好的很嫻熟了。
return 用來(lái)終止一個(gè)函數(shù)并返回其后面跟著的值。
return (Val);//此括號(hào)可以省略。但一般不省略,尤其在返回一個(gè)表達(dá)式的值時(shí)。
以上所述是小編給大家介紹的詳解C語(yǔ)言 三大循環(huán) 四大跳轉(zhuǎn) 和判斷語(yǔ)句 ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
C/C++使用C語(yǔ)言實(shí)現(xiàn)多態(tài)
這篇文章主要介紹了C/C++多態(tài)的實(shí)現(xiàn)機(jī)制理解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下,希望能給你帶來(lái)幫助2021-08-08C語(yǔ)言動(dòng)態(tài)開(kāi)辟內(nèi)存詳解
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言動(dòng)態(tài)開(kāi)辟內(nèi)存,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02C++基礎(chǔ)入門教程(二):數(shù)據(jù)、變量、宏等
這篇文章主要介紹了C++基礎(chǔ)入門教程(二):數(shù)據(jù)、變量、宏等,本文講解了變量初始化、宏定義、三種進(jìn)制數(shù)的表示、const初探、auto聲明等內(nèi)容,需要的朋友可以參考下2014-11-11C語(yǔ)言 volatile與const同時(shí)使用應(yīng)注意的問(wèn)題
“volatile”的含義是“請(qǐng)不要做沒(méi)譜的優(yōu)化,這個(gè)值可能變掉的”,而并非“你可以修改這個(gè)值”。因此,它們本來(lái)就不是矛盾的2013-09-09C語(yǔ)言fprintf()函數(shù)和fscanf()函數(shù)的具體使用
本文主要介紹了C語(yǔ)言fprintf()函數(shù)和fscanf()函數(shù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11c++ 開(kāi)發(fā)中如何讀寫(xiě)yaml配置文件
這篇文章主要介紹了c++ 開(kāi)發(fā)中如何讀寫(xiě)yaml配置文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04C++實(shí)現(xiàn)惡搞電腦關(guān)機(jī)小程序的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C++實(shí)現(xiàn)一個(gè)簡(jiǎn)單的惡搞電腦關(guān)機(jī)小程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-11-11C++數(shù)位DP復(fù)雜度統(tǒng)計(jì)數(shù)字問(wèn)題示例詳解
這篇文章主要為大家介紹了利用C++數(shù)位DP的復(fù)雜度來(lái)統(tǒng)計(jì)數(shù)字問(wèn)題的示例實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升值加薪2021-11-11