if條件式的用法
C++提供了cin讓使用者能夠輸入字元
如果使用者不管輸入什麼,程式執行的方式都一樣,那這個程式就沒有什麼變化性
那要如何判別使用者輸入的數值呢?
就用「if」吧!
if的格式如下
if(條件式)
{
敘述區塊
}
如果敘述式只有一行,那可以用下面的格式
if(條件式)
敘述式 ;
至於條件式是什麼,看下去吧
a > b (a大於b)
a < b (a小於b)
a>=b (a大於等於b)
a<=b (a小於等於b)
a != b (a不等於b)
a == b (a等於b)
!(a==b) (a不等於b) 這個不常用到
如果一個if內要判斷多個條件式的話,需要用特殊符號來進行連接
a>10 && b>=10 (a大於10,而且b要大於等於10)
a>100 || a<50 (a大於100,或a小於50)
這樣講還是太含糊了,來舉個例子吧!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> using namespace std; int main() { int x; cout << "請隨便輸入:" ; cin >> x; if(x>10 && x<100) cout << "你輸入的數位於10~100之間" << endl ; system ("pause"); return 0; } |
以上程式,如果輸入的數值介在10和100之間的話,就會顯示出「你輸入的數位於10~100之間」
.
既然有if當然會有else if
格式如下:
if(條件式1)
{
敘述區塊1
}
else if(條件式2)
{
敘述區塊2
}
else if(條件式3)
{
敘述區塊3
}
.
.
.
else if(條件式n)
{
敘述區塊n
}
當條件不成立後,繼續判斷下一個條件式
舉例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <iostream> using namespace std; int main() { int x; cout << "請隨便輸入:" ; cin >> x; if(x<0) cout << "你輸入的數小於0" << endl ; else if (x>=0 && x<10) cout << "你輸入的數介於0~10" << endl ; else if (x>=10 && x<100) cout << "你輸入的數介於10~100" << endl ; else if (x>=100 && x<1000) cout << "你輸入的數介於100~1000" << endl ; else if (x>=1000 && x<10000) cout << "你輸入的數介於1000~10000" << endl ; else if (x>=10000 && x<100000) cout << "你輸入的數介於10000~100000" << endl ; system ("pause"); return 0; } |
以上程式可以判斷出x值的範圍
那如果x的值都不在這些判斷範圍內呢?
這時就要用else啦
格式如下:
if(條件式1)
{
敘述區塊1
}
else if(條件式2)
{
敘述區塊2
}
.
.
.
else if(條件式n)
{
敘述區塊n
}
else
{
敘述區塊n+1
}
若都不符合以上n個條件式就執行第n+1個敘述區塊,也就是else的敘述區塊
舉例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include <iostream> using namespace std; int main() { int x; start: cout << "請隨便輸入:" ; cin >> x; if(x<0) cout << "你輸入的數小於0" << endl ; else if (x>=0 && x<10) cout << "你輸入的數介於0~10" << endl ; else if (x>=10 && x<100) cout << "你輸入的數介於10~100" << endl ; else if (x>=100 && x<1000) cout << "你輸入的數介於100~1000" << endl ; else if (x>=1000 && x<10000) cout << "你輸入的數介於1000~10000" << endl ; else if (x>=10000 && x<100000) cout << "你輸入的數介於10000~100000" << endl ; else { cout << "你輸入的數字太大了,重新輸入吧!" << endl; goto start; } system ("pause"); return 0; } |
以上程式若x值超過100000,就會要求使用者再次輸入(goto)
.
另外,if裡也可以包含if,也就是先判別大的if之後,再判別小的if,舉例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <iostream> using namespace std; int main() { int x; start: cout << "請隨便輸入:" ; cin >> x; if(x>0) { cout << "數值大於0"; if (x>100) { cout << ",且又大於100" ; if (x>1000) cout << ",還大於1000!" ; } cout << endl ; } else cout << "數值小於0"; system ("pause"); return 0; } |
以上程式,如果x=1234的話,那x>0就會成立,所以會執行if(x>0)的敘述區塊,輸出「數值大於0」
再來判別x是否大於100,答案是肯定的,所以會執行if (x>100)的敘述區塊,輸出「,且又大於100」
再來判別x是否大於1000,答案是肯定的,所以會執行if (x>1000)的敘述區塊,輸出「還大於1000!」
然後跳下一行(cout << endl; )
跳出if(x>0)的敘述區塊,執行程式碼system (“pause”)
所以結果會如下圖:
本篇教學到此結束