用if
語句可以構成分支結構。它根據給定的條件進行判斷,以決定執行某個分支程式段。c語言的
if語句有三種基本形式。
第一種形式為基本形式:其語義是:如果表示式的值為真,則執行其後的語句,否則不執行該語句。其過程可表示為下圖。if(表示式)
語句
【例5.3】
#include "stdio.h"
void main()
第二種形式為
【例5.4】
#include "stdio.h"
void main()
第三種形式為
if-else-if
形式
前二種形式的if語句一般都用於兩個分支的情況。當有多個分支選擇時,可採用if-else-if語句,其一般形式為:【例5.5】
#include "stdio.h"
void main()
在使用if語句中還應注意以下問題:1) 在三種形式的if語句中,在if關鍵字之後均為表示式。該表示式通常是邏輯表示式或關係表示式,但也可以是其它表示式,如賦值表示式等,甚至也可以是乙個變數。
例如:if(a=5) 語句;
if(b) 語句;
都是允許的。只要表示式的值為非0,即為「真」。
比較如下程式段:
2) 在if
語句中,條件判斷表示式必須用括號括起來,在語句之後必須加分號。
3) 在if語句的三種形式中,所有的語句應為單個語句,如果要想在滿足條件時執行一組(多個)語句,則必須把這一組語句用{}括起來組成乙個復合語句。但要注意的是在}之後不能再加分號。
(最好是在單行的時候也加上大括號。任何情況下都加上大括號。)
例如:
if (a>b)
else
補充例題:寫乙個程式完成下列功能:1 、輸入乙個分數score
2 、score<60 輸出 e
3 、60 <=score <70 輸出 d
4 、75 <=score <80 輸出 c
5 、80 <=score <90 輸出 b
5 、90 <=score 輸出 a
#include "stdio.h"
void main()
else if (score >= 60)
else if (score >= 70)
else if (score >= 80)
else
}
補充例題2:輸入三個數a,b,c,要求按由小到大的順序輸出。
if a>b 將a和b對換
if a>c 將a和c對換
if b>c 將b和c對換
#include "stdio.h"
void main()
if (a > c)
if (b > c)
printf("%d %d %d", a, b, c);
}
當
if語句中的執行語句又是
if語句時,則構成了
if 語句巢狀的情形。
在巢狀內的
if語句可能又是
if-else
型的,這將會出現多個
if和多個
else
重疊的情況,這時要特別注意if和
else
的配對問題。
例如:
其中的else
究竟是與哪乙個
if配對呢?
比較以下兩題目:哪乙個是運用巢狀方法?
【例5.6】
#include "stdio.h"
void main()
{ int a, b;
printf("please input a,b: ");
scanf("%d%d", &a, &b);
if (a != b)
if (a>b) printf("a>b\n");
else printf("a【例5.7】
#include "stdio.h"
void main()
{ int a, b;
printf("please input a,b: ");
scanf("%d%d", &a, &b);
if (a == b) printf("a=b\n");
else if (a>b) printf("a>b\n");
else printf("a採用巢狀結構實質上是為了進行多分支選擇,實際上有三種選擇即
a>b、a或
a=b。這種問題用
if-else-if
語句也可以完成。而且程式更加清晰。因此,在一般情況下較少使用
if語句的巢狀結構。以使程式更便於閱讀理解
零基礎入門學習C語言005講 分支程式設計(3)
條件運算子為 和 它是乙個三目運算子,即有三個參與運算的量。由條件運算子組成條件表示式的一般形式為 表示式1?表示式2 表示式3 其求值規則為 如果表示式1的值為真,則以表示式2 的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。條件表示式通常用於賦值語句之中。例如條件語句 if a...
零基礎入門學習C語言004講 順序程式設計(2)
scanf函式稱為格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指定的變數之中。1.scanf函式的一般形式 scanf函式是乙個標準庫函式,它的函式原型在標頭檔案 stdio.h 中,與printf函式相同,語言也允許在使用scanf函式之前不必包含stdio.件。scanf函式的一般形式...
零基礎入門學習C語言010講 預處理(1)
在前面各章中,已多次使用過以 號開頭的預處理命令。如包含命令 include 巨集定義命令 define pi 3.1415926等。在源程式中這些命令都放在函式之外,而且一般都放在原始檔的前面,它們稱為預處理部分。無參巨集的巨集名後不帶引數。其定義的一般形式為 define 識別符號 字串 其中的...