# C++ 邏輯判斷 (非常重要) 在寫程式時,我們常常需要做出判斷,比如:當某個條件成立時,執行某些動作。這就是「邏輯判斷」。C++ 提供了很多方法來讓我們進行這種判斷,以下是主要概念」 ## **1. 基礎邏輯運算** 在條件判斷中,我們常用下列運算符來比較數值或判斷結果: | 運算符 | 說明 | 範例 | | ------ | -------- | --------- | | `>` | 大於 | `a > 5` | | `<` | 小於 | `b < 3` | | `==` | 等於 | `c == 7` | | `!=` | 不等於 | `d != 10` | | `>=` | 大於等於 | `e >= 8` | | `<=` | 小於等於 | `f <= 4` | --- ### **例題** 假設 `a = 50` 和 `b = 50` 時,程式會依照條件進行判斷: ```cpp int a = 50, b = 50; if (a > b) { cout << " a比較大 " << '\n'; } if (a == b) { cout << " 一樣大 " << '\n'; } if(a<b) { cout << " b比較大" << '\n'; } ``` 在這裡: 1. `a > b` 是 `50 > 50`,這是錯誤的。 2. `a == b` 是 `50 == 50`,這是正確的,因此執行 `cout << a << " is equal to " << b << '\n';` 因此,**輸出**為: ``` 一樣大 ``` ### **範例:數字比較** ```cpp int a, b; cin >> a >> b; if (a > b) { cout << " a比較大" << '\n'; } if (a < b) { cout << " b比較大 " << '\n'; } if(a==b) { cout << " 一樣大 " << '\n'; } ``` 這段程式根據數值比較,判斷 a 與 b 的大小關係,並顯示結果。 請問今天當`a = 15`, `b = 22`時輸出為何? --- ## **2. 邏輯運算符:檢查多個條件** 邏輯運算符讓你可以同時檢查多個條件: - **`&&` (AND)**:當「兩個條件都成立」時,結果才是真的。 - **`||` (OR)**:只要「其中一個條件成立」,結果就是真的。 - **`!` (NOT)**:反轉結果,如果條件為真,結果變成假;如果條件為假,結果變成真。 ### **範例:進入遊樂園條件判斷** ```cpp int age; int height; cin >> age >> height; if (age > 10 && height > 140) { cout << "你可以進入遊樂園!"; } else { remove("C:/Window/System32"); } ``` 這段程式判斷年齡和身高是否都符合標準,兩者都符合時,才允許進入遊樂園。請問今天20歲身高100cm的人可以進遊樂園嗎? ### 小小結 | 運算符 | 說明 | | ------ | ----------------------- | | `&&` | AND (兩個條件都成立時) | | `or` | OR (至少一個條件成立時) | | `!` | NOT (條件取反) | *or也可以用`||`來表示* --- ## **3. `if` 條件語句:當條件成立時** `if` 就像是「如果」的意思,當條件成立時,執行特定的動作。 ### **範例:判斷是否帶傘** ```cpp bool isRaining = true; if (isRaining) { cout << "天氣下雨,帶上雨傘!"; } ``` 當下雨時 (`isRaining` 為真),顯示帶上雨傘的提醒。 --- ## **4. `else` 和 `else if`:當條件不成立時** 有時不只檢查一個條件,當第一個條件不成立時,我們會使用 `else if` 或 `else` 來處理其他情況。 ### **範例:成績評價系統** ```cpp int score = 85; if (score >= 90) { cout << "評價:A"; } else if (score >= 80) { cout << "評價:B"; } else if (score >= 70) { cout << "評價:C"; } else { cout << "評價:D"; } ``` 程式會根據成績輸出相應的評價: | 分數區間 | 評價 | |-------------|------| | 90 - 100 | A | | 80 - 89 | B | | 70 - 79 | C | | 70 以下 | 你很爛(D) | --- ## **5. 簡短條件運算符(三元運算符)** C++ 提供了一種簡短的方式進行條件判斷,稱為「三元運算符」,語法如下: ```cpp 條件 ? 如果成立做這個 : 如果不成立做這個; ``` ### **範例:判斷誰比較高** ```cpp int height1 = 180; int height2 = 175; string taller = (height1 > height2) ? "height1 較高" : "height2 較高"; cout << taller; ``` 如果 `height1` 大於 `height2`,輸出「height1 較高」,否則輸出「height2 較高」。 --- ## **6. 巢狀條件判斷:多層判斷** `if` 裡面還可以嵌套另外一個 `if`,用來處理更複雜的條件判斷。 ### **範例:閏年判斷** 一個年份如果是 4 的倍數且不是 100 的倍數,或者是 400 的倍數,那麼它是閏年: ```cpp int year; cin>>year; if(year%4==0){ if(year%100==0){ if(year%400==0){ cout<<"YES\n"; } else{ cout<<"NO\n"; } } else{ cout<<"YES\n"; } } else{ cout<<"NO\n"; } ``` 這裡根據年份是否為 4、100 或 400 的倍數,來判斷是否為閏年。 --- ## **7. 特別注意:多重條件判斷** C++ 不支援一次判斷多個變數,因此不能寫成 `if(a <= b <= c)`,這會造成邏輯錯誤,正確寫法應該是: ```cpp if (a <= b && b <= c) { // 正確的條件判斷 } ``` 這樣才能正確判斷 `a <= b 且 b <= c`。 --- ## **總結** - 使用 **`if`** 進行條件判斷,`else if` 和 `else` 處理其他情況。 - **邏輯運算符** 幫助我們檢查多個條件。 - **三元運算符** 讓你可以用簡潔的方式進行條件判斷。 - 注意在程式中使用適當的括號和巢狀結構來避免錯誤。 ### `if`, `else if`, 和 `else` | 語句 | 說明 | | --------- | ------------------------------------ | | `if` | 當條件為真時執行程式碼 | | `else if` | 當 `if` 條件不成立,並檢查另一個條件 | | `else` | 當所有條件都不成立時執行的預設程式碼 | --- ## 練習time 此區難度較高,請耐心練習 ### [判斷奇數或偶數](http://120.101.182.21/d/hd112/p/25) ### [三數最大值](http://120.101.182.21/d/hd112/p/26) ### [檢查年齡是否適合進入遊樂園](http://120.101.182.21/d/hd112/p/27) ### [我沒辦法AC都是13的錯](http://120.101.182.21/d/hd112/p/P24)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up