if/else布林判別式讓您的程式可以在不同的狀況下有不同的輸出結果.

if/else判別式的作用最主要就是判別一組條件是否成立, 成立為"真" (True), 不成立即 "偽" (False). 

以下是一段範例:

#include <iostream>
using namespace std;

int main()
{
   int computer;
   cin >> computer;

   if(computer > 0)
   {
     cout << "您輸入了一個正整數" << endl;
   }
   else if(computer < 0)
   {
     cout << "您輸入了一個負整數" << endl;
   }
   else
   {
     cout << "您輸入了 0, 既不是正數也不是負數" << endl;
   }

}



上面這段程式的作用是判別使用者的輸入 (存於整數變數computer中) 的整數. 如果大於零則輸出 "您輸入了一個正整數", 小於零則輸出"您輸入了一個負整數", 如果上面兩者皆不成立則輸出"您輸入了 0, 既不是正數也不是負數" (不大於又不小於當然就是等於囉!)

編譯並執行這隻程式, 當您輸入-3的時候您應該會看到"您輸入了一個負整數", 當您輸入3的時候應該會看到"您輸入了一個正整數", 依此類推.

語法解說:

  • if會檢查後來括弧中的條件是否成立. if是必要的.
  • else if如果先前的if判別不成立則會執行第二次判別.
  • else如果先前的if與else if通通不成立則會執行 (無判別).

  • *注意: 一個判別式可以沒有 else if 或 else, 但是一定要有if. 只要記得, 前面有else的都是次要的, 只有先前的條件不成立才會執行else if或是else. 

    將剛剛的程式稍微修改一下:

    #include <iostream>
    using namespace std;

    int main()
    {
       int computer;
       cin >> computer;

       if(computer > 0)
       {
         cout << "您輸入了一個正整數" << endl;
       }
       if(computer > 3)
       {
         cout << "您輸入了一個大於三的正整數" << endl;
       }
       if(computer > 5)
       {
         cout << "您輸入了了一個大於五的正整數" << endl;
       }

    }



    這個範例使用的判別全部都是if, 因此就算第一個if判別條件成立, 第二個if仍然會執行. 

    編譯並且執行這隻程式, 並且輸入6, 會發現程式中會有三個輸出, 如果輸入5的話則只有兩個輸出. 總之只要記得else代表的是次要判別, 如果先前的不成立才會執行, 在這邊由於全部都是if, 因此不管先前是否成立都照常執行下一則判別. 

    接下來要介紹的比較特別一點, 是條件式用兩個以上的個別條件式組合的.
    如: if(computer>0 && computer%2==0)
    其中&&代表就是"and", 也就是前後兩個條件都必須成立, 在此例中就是computer必須是大於0的整數且必須是偶數 (computer除以%2如果餘數是0當然就是偶數啦)
    當然有"and"就有"or".

    or在C++中的寫法是 "||" (兩條直線), or的意思就是前後兩個條件只要有一者成立即可.

    看看這個範例:

    #include <iostream>
    using namespace std;

    int main()
    {
       int computer;
       cin >> computer;

       if(computer > 0 && computer%2==0)
       {
         cout << "您輸入了一個正偶數" << endl;
       }
       else if(computer < 0 || computer==0)
       {
         cout << "你輸入的不是正整數" << endl;
       }
       else
       {
         cout << "你輸入了一個正奇數" << endl;
       }

    }



    這段的邏輯不難, 如果是大於0且除以2沒有餘數的當然就是正偶數
    如果是小於零或是等於零, 當然就不是正整數
    如果是正整數, 但不是正偶數, 當然就是正奇數啦! 

    本文章全文改自:http://www.study-area.org/coobila/tutorial_417.html

    arrow
    arrow
      文章標籤
      if/else判別式
      全站熱搜
      創作者介紹
      創作者 cout 的頭像
      cout

      火星上的c家家

      cout 發表在 痞客邦 留言(0) 人氣()