Nova的科學反主流學院 

反主流的精神在於不屈於大環境, 本站旨在提供輕鬆自學各種科學。

設定執行條件(if和else的用法)

 

本文章節包含

1.if 假如的用法

2.else 否則的用法

3.使用 else if 連接多個條件的用法

4.結語

 

以下正文:

 

之前的範例中,我們知道使用者可以輸入數字,

不過有的時候我們希望可以自動判斷數字的大小,那要怎麼辦呢?

 

1.if 假如的用法

我們可以用 if 來達成,if 的意思是"假如"、"如果"

比如說我們輸入一個數字,希望他小於1的時候提醒我們,可以用下面的寫法:

 

std::cout << "你希望從1加到幾?";
    
std::cin >> n; // 讀取使用者輸入的數字 
    
if(n < 1){
    std::cout << "請輸入大於0的整數";
}

 

上面的if,就是告訴程式,我要給你一個條件,這個條件在小括號裡面,你幫我判斷這個條件正不正確,假如正確的話,就執行大括號範圍裡面的程式

 

所以以上面這個程式為例,因為我們if關鍵字後面的小括號裡面,寫的是 n < 1 ,

所以當我們輸入1、2、3等大於或等於1的數字,都不會出現請輸入大於0的整數

而當我們輸入0、-1、-2等小於1的數字的時候,就會出現請輸入大於0的整數

 

那假如我們想要加到上一個範例中,讓他小於1會出現提示,否則就繼續執行原來的1加到N程式,我們該怎麼做呢?

 

2.else 否則的用法

 

這時候我們就需要另一個功能, else , 他的意思是"否則"

用法如下:

 

std::cout << "你希望從1加到幾?";
    
std::cin >> n; // 讀取使用者輸入的數字 
    
if(n < 1){
    std::cout << "請輸入大於0的整數";
}else{
    // 放不符合 if 條件的時後,需要執行的程式
// 第二行
// 第三行 }

 

上面這一段假如輸入是 2 ,因為不是小於 1 ,所以會跑else後面大括號裡那幾行程式。

 

 所以當不符合 if 後面小括號裡面的條件時

else 後面大括號裡的程式就會被執行到。

 

套用到上一個範例就是如下:

 

std::cout << "你希望從1加到幾?";
    
std::cin >> n; // 讀取使用者輸入的數字 
    
if(n < 1){
    std::cout << "請輸入大於0的整數";
}else{
    std::cout << "從1加到" << n << "的結果是:\n";
   
    for(int i = 0;i <= n;i++){
        sum = sum + i;
    }
        
    std::cout << sum;
}

 

3.使用 else if 連接多個條件的用法

 

假如我們今天需要多個判斷的時候要怎麼辦呢?

我們可以用 else if 連接

 

比如說我們今天是一個成績輸入系統,我們輸入分數後,他可以給出甲乙丙丁的分級

可以像下面這樣做:

 

if(score >= 90){
    std::cout << "甲\n";
}else if(score >= 80){
    std::cout << "乙\n";
}else if(score >= 70){
    std::cout << "丙\n";
}else if(score >= 60){
    std::cout << "丁\n";
}else{
    std::cout << "戊\n";
}

 

輸入數字的例子

 

我們今天輸入95分,

執行到下面這行的時候,

if(score >= 90)

會先檢查第一個 if 的條件, 

發現 95 符合大於或等於90分這個條件,就開始執行下面括號的內容

{
    std::cout << "甲\n";
}

於是程式執行大括號內的"顯示甲在螢幕上",

而 else 後面的部分就不會執行了。

 

我們今天輸入85分,

執行到下面這行的時候,

if(score >= 90)

會先檢查第一個 if 的條件,

發現不符合大於或等於90分這個條件

所以繼續往下一個 else if 的條件看

下一個條件是

else if(score >= 80)

然後程式發現85符合大於或等於80分這個條件,就開始執行下面括號的內容

{
    std::cout << "乙\n";
}

 於是程式執行大括號內的"顯示乙在螢幕上",

而 else 後面的部分就不會執行了。

 

簡單來講就是,第一個符合的會執行,其他的他不會管。

 

另外可能大家有時候會看到這個寫法:

 

if(score >= 90)
    std::cout << "甲\n";
else if(score >= 80){
    std::cout << "乙\n";
else if(score >= 70){
    std::cout << "丙\n";
else if(score >= 60){
    std::cout << "丁\n";
else
    std::cout << "戊\n";

 

 這樣還是可以作用,不過不加括號,他就只會跑下一行而已,萬一今天大括號裡面要做多件事情,容易出錯

 

4.結語

在本章中我們學到了:

1.用 if 表示符合條件要做的事情

2.用 else 表示不符合條件要做的事情

3.用 else if 連接多個條件 

 

另外,

建議 if 、 else 、 else if 後面都要加大括號,

一方面可以讓自己看清楚程式的執行範圍,

一方面也可以增加程式的良好結構。