if語句
用if語句可以構(gòu)成分支結(jié)構(gòu)。它根據(jù)給定的條件進(jìn)行判斷, 以決定執(zhí)行某個(gè)分支程序段。C語言的if語句有三種基本形式。
1.第一種形式為基本形式 if(表達(dá)式) 語句; 其語義是:如果表達(dá)式的值為真,則執(zhí)行其后的語句, 否則不執(zhí)行該語句。其過程可表示為下圖
void main(){
int a,b,max;
printf("\n input two numbers: ");
scanf("%d%d",&a,&b);
max=a;
if (max
printf("max=%d",max);
}
輸入兩個(gè)整數(shù),輸出其中的大數(shù)。
scanf("%d%d",&a,&b);
max=a;
if (max
printf("max=%d",max);
本例程序中,輸入兩個(gè)數(shù)a,b。把a(bǔ)先賦予變量max,再用if語句判別max和b的大小,如max小于b。則把b賦予max。因此max中總是大數(shù),最后輸出max的值。
2.第二種形式為if-else形式
if(表達(dá)式)
語句1;
else
語句2;
其語義是:如果表達(dá)式的值為真,則執(zhí)行語句1,否則執(zhí)行語句2。
void main(){
int a, b;
printf("input two numbers: ");
scanf("%d%d",&a,&b);
if(a>b)
printf("max=%d\n",a);
else
printf("max=%d\n",b);
}
輸入兩個(gè)整數(shù),輸出其中的大數(shù)。改用if-else語句判別a,b的大小,若a大,則輸出a,否則輸出b。
3.第三種形式為if-else-if形式
前二種形式的if語句一般都用于兩個(gè)分支的情況。 當(dāng)有多個(gè)分支選擇時(shí),可采用if-else-if語句,其一般形式為:
if(表達(dá)式1)
語句1;
else if(表達(dá)式2)
語句2;
else if(表達(dá)式3)
語句3;
…
else if(表達(dá)式m)
語句m;
else
語句n;
其語義是:依次判斷表達(dá)式的值,當(dāng)出現(xiàn)某個(gè)值為真時(shí), 則執(zhí)行其對應(yīng)的語句。然后跳到整個(gè)if語句之外繼續(xù)執(zhí)行程序。 如果所有的表達(dá)式均為假,則執(zhí)行語句n 。然后繼續(xù)執(zhí)行后續(xù)程序。 if-else-if語句的執(zhí)行過程如圖3-3所示。
#include"stdio.h"
void main(){
char c;
printf("input a character: ");
c=getchar();
if(c<32)
printf("This is a control character\n");
else if(c>='0'&&c<='9')
printf("This is a digit\n");
else if(c>='A'&&c<='Z')
printf("This is a capital letter\n");
else if(c>='a'&&c<='z')
printf("This is a small letter\n");
else
printf("This is an other character\n");
}
if(c<32)
printf("This is a control character\n");
else if(c>='0'&&c<='9')
printf("This is a digit\n");
else if(c>='A'&&c<='Z')
printf("This is a capital letter\n");
else if(c>='a'&&c<='z')
printf("This is a small letter\n");
else
printf("This is an other character\n");
本例要求判別鍵盤輸入字符的類別?梢愿鶕(jù)輸入字符的ASCII碼來判別類型。由ASCII碼表可知ASCII值小于32的為控制字符。 在“0”和“9”之間的為數(shù)字,在“A”和“Z”之間為大寫字母, 在“a”和“z”之間為小寫字母,其余則為其它字符。 這是一個(gè)多分支選擇的問題,用if-else-if語句編程,判斷輸入字符ASCII碼所在的范圍,分別給出不同的輸出。例如輸入為“g”,輸出顯示它為小寫字符。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |