發新話題

[分享] c++ 教學 1-5 if/else判別式

c++ 教學 1-5 if/else判別式

if/else布林判別式讓您的程式可以在不同的狀況下有不同的輸出結果.
*注意: C++所有語法大小寫有差. 如果您在執行時發現中文無法顯示請自行將程式修改成英文.

*注意: 如果您執行程式後, 程式視窗會自動關閉的話, 請至MS-DOS模式重新執行程式, 或是在void main()最底端加上system("PAUSE");來暫停程式.



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

以下是一段範例:
複製內容到剪貼板
代碼:
#include <iostream.h>
#include <stdlib.h>


void 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.h>
#include <stdlib.h>


void 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.h>
#include <stdlib.h>


void 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沒有餘數的當然就是正偶數
如果是小於零或是等於零, 當然就不是正整數
如果是正整數, 但不是正偶數, 當然就是正奇數啦!

if/else判別到這邊差不多囉, 記得多練習.

TOP

謝謝啦XD

謝謝啦XD

TOP

謝謝啦XD

謝謝啦XD

TOP

大大您的程式寫得很久吧?

因為『寫法習慣』很棒,除了『空格{}』整齊之外,連『運算符號』的空格都非常清楚,所以您的程式『一眼』就很容易了解,感謝您的分享~~~

(因為有部分的人會寫程式,但是程式碼不容易看,到後來也就看不懂自己寫什麼了)

[ 本帖最後由 linuxice 於 2010-1-2 21:12 編輯 ]

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。