2024年6月20日 星期四

17.VB.NET 筆記 核心篇 - 布林值 (Boolean)

VB.NET 布林值 (Boolean) 筆記 (難度: 核心篇)

VB.NET 布林值 (Boolean) 筆記 (核心篇)

布林值就像是程式設計中的開關開關只有開和關兩種狀態,布林值也只有 True 和 False 兩個可能的值,用來表示某個條件是否成立。,它可以用來表示某個條件是否成立。透過理解布林值的特性和使用方式,就能夠寫出更簡潔、易讀、易維護的程式碼。

認識布林值

布林值 (Boolean): 布林值是一種邏輯資料類型,只有兩個可能的值:True 和 False。它用來表示某個條件是否成立,例如判斷一個數是否大於零,或者一個字串是否為空。布林值在程式設計中扮演著重要的角色,常用於條件判斷、迴圈控制等場景。

假設正在開發一個簡單的登入功能。在這個功能中,需要驗證使用者輸入的帳號和密碼是否正確。如果帳號和密碼都正確,就允許使用者登入;否則,顯示錯誤訊息。可以使用布林值來表示登入是否成功:

Dim isLoginSuccessful As Boolean = False '宣告一個布林變數,初始值為 False

'驗證帳號和密碼是否正確
If username = "admin" AndAlso password = "123456" Then
    isLoginSuccessful = True '如果帳號和密碼正確,將布林變數設為 True
End If

'根據布林變數的值決定是否允許登入
If isLoginSuccessful Then
    '允許登入,顯示歡迎訊息Label1.Text = "歡迎登入!"
Else
    '登入失敗,顯示錯誤訊息
    Label1.Text = "帳號或密碼錯誤,請重新輸入。"
End If

在這個例子中,使用一個名為 isLoginSuccessful 的布林變數來表示登入是否成功。初始值設為 False,表示登入尚未成功。接著,透過驗證帳號和密碼是否正確,如果都正確,就將 isLoginSuccessful 設為 True,表示登入成功。最後,根據 isLoginSuccessful 的值,決定是否允許登入,並顯示相應的訊息。使用布林值可以讓條件判斷更加清晰、易讀。

VB.NET 中的布林值還有以下幾個重要特性:

  1. 真值與假值布林值只有兩個可能的值:True 表示條件成立,False 表示條件不成立,就像開關只有開和關兩種狀態一樣。:布林值只有 True 和 False 兩個可能的值,分別表示條件成立和不成立。
  2. 預設值如果沒有特別指定,布林變數的初始值為 False,就像開關預設是關閉的狀態一樣。:如果沒有特別指定,布林變數的預設值為 False。
  3. 邏輯運算布林值可以進行 And、Or、Not 等邏輯運算,就像開關可以串聯、並聯、取反一樣,用來組合多個條件。:布林值可以進行 And、Or、Not 等邏輯運算,用來組合多個條件。
  4. 比較運算可以使用 =、<>、<、>、<=、>= 等運算子對布林值進行比較,就像比較開關的狀態一樣,用來判斷條件是否成立。:可以使用 =、<>、<、>、<=、>= 等運算子對布林值進行比較。

在 VB.NET 中,布林值的型別為 Boolean。宣告布林變數時,可以使用 Dim 關鍵字,並指定變數名稱和型別。例如:

Dim isValid As Boolean = True '宣告一個名為 isValid 的布林變數,初始值為 True
Dim isEmpty As Boolean '宣告一個名為 isEmpty 的布林變數,預設值為 False

布林值在程式設計中扮演著關鍵的角色,用於條件判斷、迴圈控制、邏輯運算等場景。透過恰當地使用布林值,可以讓程式的邏輯更加清晰、易於理解和維護。

布林運算子

布林運算子用於對布林值進行運算,根據運算結果返回一個布林值。VB.NET 中常用的布林運算子有:

運算子 說明 範例
And 邏輯與,兩個運算元都為 True 時,結果為 True True And False 結果為 False
AndAlso 短路邏輯與,如果第一個運算元為 False,就不會評估第二個運算元 False AndAlso True 結果為 False
Or 邏輯或,只要有一個運算元為 True,結果就為 True True Or False 結果為 True
OrElse 短路邏輯或,如果第一個運算元為 True,就不會評估第二個運算元 True OrElse False 結果為 True
Not 邏輯非,對單一運算元取反 Not True 結果為 False
Xor 邏輯異或,兩個運算元不同時,結果為 True True Xor False 結果為 True

這些布林運算子可以用來組合多個條件,形成更複雜的邏輯表達式。例如:

Dim x As Integer = 5
Dim y As Integer = 10
Dim result As Boolean

result = (x > 0) And (y < 20) '組合兩個條件,結果為 True
result = (x = 5) Or (y = 15) '組合兩個條件,結果為 True
result = Not (x = y) '對條件取反,結果為 True

使用布林運算子時,要注意運算子的優先順序和短路特性。And、Or、Xor 的優先順序低於 Not,而 AndAlso 和 OrElse 的優先順序高於 And 和 Or。短路運算子 AndAlso 和 OrElse 可以避免不必要的運算,提高程式的效率。

If-Else 敘述

If-Else 敘述是根據布林表達式的值來決定是否執行某個程式區塊。如果布林表達式的值為 True,就執行 If 區塊中的程式碼;否則,執行 Else 區塊中的程式碼。If-Else 敘述的基本語法如下:

If 布林表達式 Then
    '如果布林表達式為 True,執行這個區塊的程式碼
Else
    '如果布林表達式為 False,執行這個區塊的程式碼
End If

如果只有一個區塊的程式碼需要執行,可以省略 Else 部分。例如:

If 布林表達式 Then
    '如果布林表達式為 True,執行這個區塊的程式碼
End If

If-Else 敘述還可以使用 ElseIf 來處理多個條件。例如:

If 布林表達式1 Then
    '如果布林表達式1為 True,執行這個區塊的程式碼
ElseIf 布林表達式2 Then
    '如果布林表達式2為 True,執行這個區塊的程式碼
Else
    '如果所有布林表達式都為 False,執行這個區塊的程式碼
End If

來看一個具體的例子,更好地理解 If-Else 敘述的用法:

If-Else 敘述範例

這個範例根據使用者輸入的分數,判斷學生的等級,並在 Label 控制項中顯示結果。

使用的控制項:
  • TextBox1:用來輸入學生的分數。
  • Button1:用來觸發判斷等級的動作。
  • Label1:用來顯示判斷的結果。
Imports System '導入 System 命名空間

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim score As Integer = Integer.Parse(TextBox1.Text) '取得使用者輸入的分數
        
        Dim grade As String '宣告一個字串變數,用來存儲等級
        
        '使用 If-Else 敘述判斷等級
        If score >= 90 Then
            grade = "優等"
        ElseIf score >= 80 Then
            grade = "甲等"
        ElseIf score >= 70 Then
            grade = "乙等"
        ElseIf score >= 60 Then
            grade = "丙等"
        Else
            grade = "不及格"
        End If
        
        Label1.Text = "學生的等級是:" & grade '顯示判斷的結果
    End Sub
End Class

在這個例子中,當使用者點擊 Button1 時,觸發 Button1_Click 事件。在事件處理函式中,首先使用 Integer.Parse 方法將 TextBox1 中的文字轉換為整數,得到學生的分數。接著,使用 If-Else 敘述根據分數的範圍判斷等級,將結果存儲在 grade 變數中。最後,在 Label1 中顯示判斷的結果。

If-Else 敘述是根據布林表達式的值來控制程式的執行流程。透過恰當地使用 If-Else 敘述,可以實現條件判斷、分支選擇等功能,使程式的邏輯更加清晰、易於理解。在實際開發中,要根據具體的需求和場景,靈活運用 If-Else 敘述來優化程式碼。

布林值相關方法

VB.NET 提供了一些與布林值相關的方法,可以方便地進行布林值的轉換、比較等操作。以下是一些常用的布林值相關方法:

Parse 方法

Boolean.Parse 方法用於將字串轉換為布林值。

Dim value As String = "True"
Dim result As Boolean = Boolean.Parse(value) '將字串轉換為布林值,result 為 True

如果字串的值不是 "True" 或 "False"(不區分大小寫),Parse 方法會拋出 FormatException 異常。

TryParse 方法

Boolean.TryParse 方法用於嘗試將字串轉換為布林值,並返回一個指示轉換是否成功的布林值。

Dim value As String = "True"
Dim result As Boolean
Dim success As Boolean = Boolean.TryParse(value, result) '嘗試將字串轉換為布林值
'success 為 True,表示轉換成功,result 的值為 True

如果轉換成功,TryParse 方法返回 True,並將轉換後的布林值賦給 result 參數;如果轉換失敗,返回 False,result 參數的值不變。

ToString 方法

ToString 方法用於將布林值轉換為字串。

Dim flag As Boolean = True
Dim str As String = flag.ToString() '將布林值轉換為字串,str 的值為 "True"

ToString 方法返回布林值對應的字串表示形式,"True" 或 "False"。

除了這些方法外,還有一些與布林值相關的運算子,如 =(等於)、<>(不等於)等,可以用於比較兩個布林值是否相等。

使用布林值相關方法,可以方便地進行布林值的轉換、比較等操作。在實際開發中,要根據具體的需求和場景,選擇適當的方法來處理布林值,使程式碼更加簡潔、易讀。

布林值應用範例

通過一個完整的範例來進一步理解布林值在實際應用中的使用方式。在這個範例中,將建立一個簡單的問答遊戲,使用布林值來判斷使用者的答案是否正確。

範例:問答遊戲

這個範例顯示一個問題,並提供兩個選項按鈕供使用者選擇。使用者選擇答案後,點擊提交按鈕,程式會判斷答案是否正確,並顯示相應的訊息。

使用的控制項:
  • Label1:用來顯示問題。
  • RadioButton1:用來提供選項 A。
  • RadioButton2:用來提供選項 B。
  • Button1:用來觸發答案提交的動作。
  • Label2:用來顯示答案的正確性和得分。
Imports System '導入 System 命名空間

Public Class Form1
    Private score As Integer = 0 '宣告一個整數變數,用來記錄得分
    
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Label1.Text = "問題:1 + 1 等於多少?" '設定問題的文字
        RadioButton1.Text = "A. 1" '設定選項 A 的文字
        RadioButton2.Text = "B. 2" '設定選項 B 的文字
    End Sub
    
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim isCorrect As Boolean = False '宣告一個布林變數,用來記錄答案是否正確
        
        '判斷使用者選擇的答案是否正確
        If RadioButton2.Checked Then
            isCorrect = True '如果選擇了選項 B,答案正確
            score += 10 '答對了,加 10 分
        End If
        
        '根據答案的正確性顯示相應的訊息
        If isCorrect Then
            Label2.Text = "恭喜你,答案正確!得分:" & score
        Else
            Label2.Text = "很遺憾,答案錯誤。得分:" & score
        End If
    End Sub
End Class

程式步驟:

  1. 宣告一個整數變數 score,用來記錄得分,初始值為 0。
  2. 在表單載入時,設定 Label1 的文字為問題,設定 RadioButton1 和 RadioButton2 的文字為選項 A 和選項 B。
  3. 當使用者點擊提交按鈕 Button1 時,觸發 Button1_Click 事件。
  4. 在事件處理函式中,宣告一個布林變數 isCorrect,用來記錄答案是否正確,初始值為 False。
  5. 判斷使用者選擇的答案是否正確。如果選擇了選項 B(即 RadioButton2 被選中),將 isCorrect 設為 True,並將得分加 10。
  6. 根據 isCorrect 的值,在 Label2 中顯示相應的訊息。如果答案正確,顯示恭喜訊息和當前得分;如果答案錯誤,顯示遺憾訊息和當前得分。