if語句的3種形式
1) if(表達式) 語句。
例如:
if(x>y) cout<<x<<endl;
這種if語句的執行過程見下圖。
2) if(表達式) 語句1 else 語句2
例如:
if (x>y) cout<<x; else cout<<y;
見圖。

3)
if(表達式1) 語句1 else if(表達式2) 語句2 else if(表達式3) 語句3 … else if(表達式m) 語句m else 語句n
例如:
if (number>500) cost=0.15;else if(number>300) cost=0.10;else if(number>100) cost=0.075;else if(number>50) cost=0.05;else cost=0;
流程圖見圖。

說明:
從圖3.5和圖3.6可以看到: 3種形式的if語句都是由一個入口進來,經過對“表達式”的判斷,分別執行相應的語句,最后歸到一個共同的出口。這種形式的程序結構稱為選擇結構。在C++中if語句是實現選擇結構主要的語句。
3種形式的if語句中在if后面都有一個用括號括起來的表達式,它是程序編寫者要求程序判斷的“條件”,一般是邏輯表達式或關系表達式。
第2、第3種形式的if語句中,在每個else前面有一分號,整個語句結束處有一分號。
在if和else后面可以只含一個內嵌的操作語句(如上例),也可以有多個操作語句,此時用花括號“{}”將幾個語句括起來成為一個復合語句。
【例】求三角形的面積。
#include <iostream>#include <cmath> //使用數學函數時要包含頭文件cmath#include <iomanip> //使用I/O流控制符要包含頭文件iomanipusing namespace std;int main( ){ double a,b,c; cout<<"please enter a,b,c:"; cin>>a>>b>>c; if (a+b>c && b+c>a && c+a>b) { //復合語句開始 double s,area;//在復合語句內定義變量 s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); cout<<setiosflags(ios::fixed)<<setprecision(4); //指定輸出的數包含4位小數 cout<<"area="<<area<<endl; //在復合語句內輸出局部變量的值 } //復合語句結束 else cout<<"it is not a trilateral!"<<endl; return 0;}運行情況如下: