詳解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)文章
Qt結(jié)合OpenCV部署yolov5的實(shí)現(xiàn)
本文主要介紹了Qt結(jié)合OpenCV部署yolov5的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
使用C++實(shí)現(xiàn)鏈表元素的反轉(zhuǎn)
反轉(zhuǎn)鏈表是鏈表操作中一個(gè)經(jīng)典的問(wèn)題,也是面試中常見(jiàn)的考題,本文將從思路到實(shí)現(xiàn)一步步地講解如何實(shí)現(xiàn)鏈表的反轉(zhuǎn),幫助初學(xué)者理解這一操作,我們將使用C++代碼演示具體實(shí)現(xiàn),同時(shí)分析時(shí)間復(fù)雜度和空間復(fù)雜度,需要的朋友可以參考下2025-02-02
淺談使用C++多級(jí)指針存儲(chǔ)海量qq號(hào)和密碼
這篇文章主要介紹了淺談使用C++多級(jí)指針存儲(chǔ)海量qq號(hào)和密碼,分享了相關(guān)實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
c語(yǔ)言如何設(shè)置隨機(jī)數(shù)及逐行解析
在C語(yǔ)言中,rand()函數(shù)可以用來(lái)產(chǎn)生隨機(jī)數(shù),但是這不是真真意義上的隨機(jī)數(shù),是一個(gè)偽隨機(jī)數(shù),下面這篇文章主要給大家介紹了關(guān)于c語(yǔ)言如何設(shè)置隨機(jī)數(shù)及逐行解析的相關(guān)資料,需要的朋友可以參考下2022-11-11
C語(yǔ)言實(shí)現(xiàn)靜態(tài)順序表的實(shí)例詳解
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)靜態(tài)順序表的實(shí)例詳解的相關(guān)資料,這里提供是幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08
C++/Php/Python 語(yǔ)言執(zhí)行shell命令的方法(推薦)
下面小編就為大家?guī)?lái)一篇C++/Php/Python 語(yǔ)言執(zhí)行shell命令的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
C語(yǔ)言函數(shù)遞歸實(shí)際應(yīng)用舉例詳解
程序調(diào)用自身的編程技巧稱為遞歸,遞歸做為一種算法在程序設(shè)計(jì)語(yǔ)言中廣泛應(yīng)用,這篇文章主要介紹了C語(yǔ)言函數(shù)遞歸實(shí)際應(yīng)用舉例的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04

