if語(yǔ)句的使用
員工經(jīng)過(guò)長(zhǎng)期磨合與沉淀,具備了協(xié)作精神,得以通過(guò)團(tuán)隊(duì)的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)堅(jiān)持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩W⑺詫I(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專注于為企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號(hào)開發(fā)、電商網(wǎng)站開發(fā),小程序設(shè)計(jì),軟件按需定制網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。
用if語(yǔ)句可以構(gòu)成分支結(jié)構(gòu)。它根據(jù)給定的條件進(jìn)行判斷,以決定執(zhí)行某個(gè)分支程序段。C語(yǔ)言的if語(yǔ)句有三種基本形式。
語(yǔ)句的三種形式
1) 第一種形式為基本形式:if
if(表達(dá)式) 語(yǔ)句
其語(yǔ)義是:如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句,否則不執(zhí)行該語(yǔ)句。
【例1】
#include
int main(void){
int a,b,max;
printf(" input two numbers: ");
scanf("%d%d",a,b);
max=a;
if (max
printf("max=%d",max);
return 0;
}
本例程序中,輸入兩個(gè)數(shù)a、b。把a(bǔ)先賦予變量max,再用if語(yǔ)句判別max和b的大小,如max小于b,則把b賦予max。因此max中總是大數(shù),最后輸出max的值。
2) 第二種形式為: if-else
if(表達(dá)式)
語(yǔ)句1;
else
語(yǔ)句2;
其語(yǔ)義是:如果表達(dá)式的值為真,則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2 。
【例2】
#include
int main(void){
int a, b;
printf("input two numbers: ");
scanf("%d%d",a,b);
if(ab)
printf("max=%d ",a);
else
printf("max=%d ",b);
return 0;
}
輸入兩個(gè)整數(shù),輸出其中的大數(shù)。改用if-else語(yǔ)句判別a,b的大小,若a大,則輸出a,否則輸出b。
3) 第三種形式為if-else-if形式
前二種形式的if語(yǔ)句一般都用于兩個(gè)分支的情況。當(dāng)有多個(gè)分支選擇時(shí),可采用if-else-if語(yǔ)句,其一般形式為:
if(表達(dá)式1)
語(yǔ)句1;
else if(表達(dá)式2)
語(yǔ)句2;
else if(表達(dá)式3)
語(yǔ)句3;
…
else if(表達(dá)式m)
語(yǔ)句m;
else
語(yǔ)句n;
其語(yǔ)義是:依次判斷表達(dá)式的值,當(dāng)出現(xiàn)某個(gè)值為真時(shí),則執(zhí)行其對(duì)應(yīng)的語(yǔ)句。然后跳到整個(gè)if語(yǔ)句之外繼續(xù)執(zhí)行程序。 如果所有的表達(dá)式均為假,則執(zhí)行語(yǔ)句n。然后繼續(xù)執(zhí)行后續(xù)程序。 if-else-if語(yǔ)句的執(zhí)行過(guò)程如下圖所示。
【例3】
#include
int main(void){
char c;
printf("input a character: ");
c=get);
if(c32)
printf("This is a control character ");
else if(c='0'c='9')
printf("This is a digit ");
else if(c='A'c='Z')
printf("This is a capital letter ");
else if(c='a'c='z')
printf("This is a small letter ");
else
printf("This is an other character ");
return 0;
}
本例要求判別鍵盤輸入字符的類別??梢愿鶕?jù)輸入字符的ASCII碼來(lái)判別類型。由ASCII碼表可知ASCII值小于32的為控制字符。在“0”和“9”之間的為數(shù)字,在“A”和“Z”之間為大寫字母, 在“a”和“z”之間為小寫字母,其余則為其它字符。這是一個(gè)多分支選擇的問(wèn)題,用if-else-if語(yǔ)句編程,判斷輸入字符ASCII碼所在的范圍,分別給出不同的輸出。例如輸入為“g”,輸出顯示它為小寫字符。
if語(yǔ)句的嵌套
當(dāng)if語(yǔ)句中的執(zhí)行語(yǔ)句又是if語(yǔ)句時(shí),則構(gòu)成了if 語(yǔ)句嵌套的情形。其一般形式可表示如下:
if(表達(dá)式)
if語(yǔ)句;
或者為:
if(表達(dá)式)
if語(yǔ)句;
else
if語(yǔ)句;
在嵌套內(nèi)的if語(yǔ)句可能又是if-else型的,這將會(huì)出現(xiàn)多個(gè)if和多個(gè)else重疊的情況,這時(shí)要特別注意if和else的配對(duì)問(wèn)題。例如:
if(表達(dá)式1)
if(表達(dá)式2)
語(yǔ)句1;
else
語(yǔ)句2;
其中的else究竟是與哪一個(gè)if配對(duì)呢?應(yīng)該理解為:
if(表達(dá)式1)
if(表達(dá)式2)
語(yǔ)句1;
else
語(yǔ)句2;
還是應(yīng)理解為:
if(表達(dá)式1)
if(表達(dá)式2)
語(yǔ)句1;
else
語(yǔ)句2;
為了避免這種二義性,C語(yǔ)言規(guī)定,else 總是與它前面最近的if配對(duì),因此對(duì)上述例子應(yīng)按前一種情況理解。
【例4】
#include
int main(void){
int a,b;
printf("please input A,B: ");
scanf("%d%d",a,b);
if(a!=b)
if(ab) printf("AB ");
else printf("A
else printf("A=B ");
return 0;
}
比較兩個(gè)數(shù)的大小關(guān)系。本例中用了if語(yǔ)句的嵌套結(jié)構(gòu)。采用嵌套結(jié)構(gòu)實(shí)質(zhì)上是為了進(jìn)行多分支選擇,實(shí)際上有三種選擇即AB、A
簡(jiǎn)單講解C語(yǔ)言中宏的定義與使用
宏定義是預(yù)編譯功能的一種, 預(yù)編譯又稱為預(yù)處理, 是為編譯做的預(yù)備工作的階段。處理#開頭的指令, 比如拷貝 #include 包含的文件代碼,#define宏定義的替換,條件編譯等。
使用宏定義的好處:使用宏定義的好處:可提高程序的通用性和易讀性,減少不一致性,減少輸入錯(cuò)誤和便于修改。例如 π 這個(gè)常量,我們有時(shí)候會(huì)在程序的多個(gè)地方使用,如果每次使用都重新定義,一來(lái)比較麻煩,二來(lái)容易出錯(cuò),所以我們可以把 π 做成宏定義來(lái)使用。
語(yǔ)法說(shuō)明:
(1)宏名一般用大寫
(2)使用宏可提高程序的`通用性和易讀性,減少不一致性,減少輸入錯(cuò)誤和便于修改。例如:數(shù)組大小常用宏定義
(3)預(yù)處理是在編譯之前的處理,而編譯工作的任務(wù)之一就是語(yǔ)法檢查,預(yù)處理不做語(yǔ)法檢查。
(4)宏定義末尾不加分號(hào);
(5)宏定義寫在函數(shù)的花括號(hào)外邊,作用域?yàn)槠浜蟮某绦颍ǔT谖募淖铋_頭。
(6)可以用#undef命令終止宏定義的作用域
(7)宏定義可以嵌套
(8)字符串" "中永遠(yuǎn)不包含宏
(9)宏定義不分配內(nèi)存,變量定義分配內(nèi)存。
定義:
#define 宏名 內(nèi)容#define kArrLen 10 // OC駝峰命名法:首字符為k,其他單詞首字符大寫#define ARR_LEN 10 // C語(yǔ)言中的宏命名規(guī)范:所有字母大寫,單詞用下劃線分隔
例如:
#define PI 3.1415926
我們就可以使用 PI 來(lái)代替 3.1415926 即可:
float r = 0.5;float area = PI * r * r;printf("area = %fn", area);
在程序預(yù)編譯階段會(huì)把 PI 替換成 3.1415926:
float area = 3.1415926 * r * r;
宏定義內(nèi)容很簡(jiǎn)單,也很好理解,但是有幾個(gè)如下的注意事項(xiàng):
1、因?yàn)楹甓x只是簡(jiǎn)單的替換,如果宏定義的內(nèi)容有運(yùn)算的時(shí)候,要把每個(gè)變量加上括號(hào),以免影響運(yùn)算的優(yōu)先級(jí)
比如:#define MUL(A, B) (A * B)
使用方法:
MUL(3 + 5, 5 + 6) //會(huì)替換成 3 + 5 * 5 + 6 = 34
我們希望(3 + 5) * (5 + 6),所以定義宏定義的時(shí)候應(yīng)該:
#define MUL(A, B) ((A) * (B))
2、注意宏定義后面沒(méi)有分號(hào)(;),它不是一條語(yǔ)句
3、宏定義是在程序編譯前期進(jìn)行替換,此時(shí)程序還沒(méi)有編譯
if語(yǔ)句的一般形式如下:
if(表達(dá)式)語(yǔ)句1
[else語(yǔ)句2]
if語(yǔ)句中的“表達(dá)式”可以是關(guān)系表達(dá)式、邏輯表達(dá)式,甚至是數(shù)值表達(dá)式。其中最直觀、最容易理解的是關(guān)系表達(dá)式。所謂關(guān)系表達(dá)式就是兩個(gè)數(shù)值進(jìn)行比較的式子。
例如:
if(xy)
printf("%d",x);
else
printf("%d",y);
擴(kuò)展資料
if-else語(yǔ)句引入了一種二義性問(wèn)題稱為空懸else(dangling-else)問(wèn)題,這種問(wèn)題出現(xiàn)在當(dāng)if子句多于else子句時(shí)。問(wèn)題是這些else子句分別和哪一個(gè)if子句匹配。
例如:
if(minVal=ivec[i])
if(minVal==ivec[i])
++occurs;
else
{
minVal=ivec[i];
occurs=1;
}
C語(yǔ)言中if語(yǔ)句基本的有三種格式,在此基礎(chǔ)上可以擴(kuò)展一些其它格式,下面我們來(lái)看看c語(yǔ)言if語(yǔ)句的用法。
c語(yǔ)言if語(yǔ)句的用法
1、 if……形式
一般格式:if(表達(dá)式) 語(yǔ)句;
語(yǔ)義是:如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句,否則不執(zhí)行該語(yǔ)句。語(yǔ)句可以是單條語(yǔ)句,也可以是用花括號(hào){}包括起來(lái)的復(fù)合語(yǔ)句。示例如下:
#include
int main(){
int a,b,max;
printf(" input two numbers: ");
scanf("%d%d",a,b);
max=a;
if (maxb) max=b;
printf("max=%d ",max);
return 0;
}
2、if……else形式
一般格式:
if(表達(dá)式)
語(yǔ)句1;
else
語(yǔ)句2;
語(yǔ)義是:如果表達(dá)式的值為真,則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2 。語(yǔ)句1和語(yǔ)句2可以是復(fù)合語(yǔ)句。
示例如下:
#include
int main(){
int a, b;
printf("input two numbers: ");
scanf("%d%d",a,b);
if(ab)
printf("max=%d ",a);
else
printf("max=%d ",b);
return 0;
}
3、if……else……if形式
一般形式為:
if(表達(dá)式1)
語(yǔ)句1;
else if(表達(dá)式2)
語(yǔ)句2;
else if(表達(dá)式3)
語(yǔ)句3;
…
else if(表達(dá)式m)
語(yǔ)句m;
else
語(yǔ)句n;
語(yǔ)義是:依次判斷表達(dá)式的值,當(dāng)出現(xiàn)某個(gè)值為真時(shí),則執(zhí)行其對(duì)應(yīng)的語(yǔ)句。然后跳到整個(gè)if語(yǔ)句之外繼續(xù)執(zhí)行程序。 如果所有的表達(dá)式均為假,則執(zhí)行語(yǔ)句n。然后繼續(xù)執(zhí)行后續(xù)程序。示例如下:
#include
int main(){
char c;
printf("input a character: ");
c=get);
if(c32)
printf("This is a control character ");
else if(c=0c=9)
printf("This is a digit ");
else if(c=Ac=Z)
printf("This is a capital letter ");
else if(c=ac=z)
printf("This is a small letter ");
else
printf("This is an other character ");
return 0;
}
4、擴(kuò)展形式
if條件控制語(yǔ)句的形式是多種多樣的。比如if嵌套、if……if類似的形式,但是都離不開上面介紹的三種基本形式。注意活學(xué)活用。
【拓展】c語(yǔ)言的優(yōu)缺點(diǎn)
1. 簡(jiǎn)潔緊湊、靈活方便
C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書寫形式自由,主要用小寫字母表示。它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。 C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。
2. 運(yùn)算符豐富
C語(yǔ)言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。C語(yǔ)言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C語(yǔ)言的'運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。
3. 數(shù)據(jù)結(jié)構(gòu)豐富
C語(yǔ)言的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語(yǔ)言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。
4. C是結(jié)構(gòu)式語(yǔ)言
結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦阌谑褂?、維護(hù)以及調(diào)試。C語(yǔ)言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語(yǔ)句控制程序流向,從而使程序完全結(jié)構(gòu)化。
5.C語(yǔ)法限制
C語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大 雖然C語(yǔ)言也是強(qiáng)類型語(yǔ)言,但它的語(yǔ)法比較靈活,允許程序編寫者有較大的自由度
6. C語(yǔ)言允許直接訪問(wèn)物理地址,可以直接對(duì)硬件進(jìn)行操作
由于C語(yǔ)言允許直接訪問(wèn)物理地址,可以直接對(duì)硬件進(jìn)行
網(wǎng)頁(yè)標(biāo)題:if條件語(yǔ)句函數(shù)c語(yǔ)言,c語(yǔ)言if條件表達(dá)式
文章地址:http://jinyejixie.com/article40/dsecoho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、定制網(wǎng)站、、企業(yè)建站、網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
營(yíng)銷型網(wǎng)站建設(shè)知識(shí)