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”)

所以結果會如下圖:

本篇教學到此結束

文章分類:C & C++|標籤:,

迴響已關閉