2024年7月18日 星期四

21.VB.NET 筆記 基礎篇 - 整數 (Integer)

VB.NET 整數 (Integer) 筆記 (基礎篇)

VB.NET 整數 (Integer) 筆記 (基礎篇)

整數就像是程式設計的基本積木整數是程式設計中最基本的數據類型之一,就像是搭建程式的基礎積木,許多複雜的功能都是由整數組成的。,大部分的運算和邏輯判斷都離不開它。透過了解整數的特性和使用方式,就能夠更有效率地處理程式中的數值運算。

整數類型

整數 (Integer): 整數是一種用來表示沒有小數部分的數值的數據類型。它包含了正整數、負整數和零。在 VB.NET 中,有多種整數類型可供選擇,每種類型的取值範圍和佔用的記憶體空間都不同。

VB.NET 中的整數類型包括:

類型 取值範圍 佔用空間
SByte -128 到 127 1 個位元組
Byte 0 到 255 1 個位元組
Short -32,768 到 32,767 2 個位元組
UShort 0 到 65,535 2 個位元組
Integer -2,147,483,648 到 2,147,483,647 4 個位元組
UInteger 0 到 4,294,967,295 4 個位元組
Long -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 8 個位元組
ULong 0 到 18,446,744,073,709,551,615 8 個位元組

選擇合適的整數類型可以幫助我們更有效地利用記憶體空間,並避免因為數值溢出而導致的錯誤。在大多數情況下,Integer 類型已經足夠使用,除非需要處理非常大或非常小的數值。

在 VB.NET 中,可以使用 Dim 關鍵字來宣告整數變數,並使用賦值運算子 (=) 來給整數變數賦值。例如:

Dim age As Integer
age = 25

Dim count As Integer = 100

瞭解不同的整數類型及其取值範圍,可以幫助我們選擇最合適的類型來儲存和處理整數數據,提高程式的效率和準確性。

整數運算

VB.NET 支援各種整數運算,包括算術運算、比較運算和位元運算等。以下是一些常用的整數運算:

算術運算

可以使用算術運算子 (+, -, *, /, Mod) 來進行整數的加、減、乘、除和取餘運算。例如:

使用的控制項:無
Dim a As Integer = 10
Dim b As Integer = 3

Dim sum As Integer = a + b '結果為 13
Dim difference As Integer = a - b '結果為 7
Dim product As Integer = a * b '結果為 30
Dim quotient As Integer = a / b '結果為 3
Dim remainder As Integer = a Mod b '結果為 1

需要注意的是,整數除法的結果會自動捨去小數部分。如果要進行帶小數的除法運算,需要先將整數轉換為浮點數類型,例如 SingleDouble

比較運算

可以使用比較運算子 (=, <>, <, >, <=, >=) 來比較兩個整數的大小關係。例如:

使用的控制項:無
Dim a As Integer = 10
Dim b As Integer = 5

If a = b Then
    MessageBox.Show("a 等於 b")
ElseIf a <> b Then
    MessageBox.Show("a 不等於 b")  
End If

If a > b Then
    MessageBox.Show("a 大於 b")
ElseIf a < b Then  
    MessageBox.Show("a 小於 b")
End If

比較運算的結果是一個布林值,即 TrueFalse。可以使用比較運算的結果來進行條件判斷和流程控制。

位元運算

可以使用位元運算子 (And, Or, Xor, Not) 來進行整數的位元運算。例如:

使用的控制項:無
Dim a As Integer = 10 '二進位表示為 1010
Dim b As Integer = 6 '二進位表示為 0110

Dim andResult As Integer = a And b '結果為 2,二進位表示為 0010
Dim orResult As Integer = a Or b '結果為 14,二進位表示為 1110
Dim xorResult As Integer = a Xor b '結果為 12,二進位表示為 1100
Dim notResult As Integer = Not a '結果為 -11,二進位表示為 11110101

位元運算可以用來進行一些特殊的操作,例如掩碼、標誌位設置等。在某些性能要求較高的場景中,使用位元運算可以提高程式的執行效率。

熟練掌握整數運算,可以幫助我們編寫更高效、更準確的程式。在實際開發中,要根據具體的需求選擇合適的運算方式,並注意運算結果的取值範圍,以避免溢出等問題的發生。

整數解析

在程式開發中,我們經常需要將其他類型的數據轉換為整數類型,例如將字串轉換為整數。VB.NET 提供了多種方法來進行整數解析,包括 Integer.ParseInteger.TryParseCInt 等。

Integer.Parse

Integer.Parse 方法可以將一個字串轉換為整數。如果字串的格式不正確,會拋出 FormatException 異常。例如:

使用的控制項:
  • TextBox1:用來輸入要轉換的字串。
  • Button1:用來觸發轉換操作。
  • Label1:用來顯示轉換後的整數。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim str As String = TextBox1.Text

    Try
        Dim num As Integer = Integer.Parse(str)
        Label1.Text = "轉換後的整數為:" & num.ToString()
    Catch ex As FormatException
        MessageBox.Show("字串格式不正確,無法轉換為整數。")
    End Try
End Sub

在上面的例子中,當使用者在 TextBox1 中輸入一個字串並點擊 Button1 時,程式會嘗試使用 Integer.Parse 方法將字串轉換為整數。如果轉換成功,就將結果顯示在 Label1 中;如果轉換失敗,就會拋出 FormatException 異常,並顯示一個錯誤提示。

Integer.TryParse

Integer.TryParse 方法也可以將一個字串轉換為整數,但它不會拋出異常。而是通過一個輸出參數來返回轉換是否成功。例如:

使用的控制項:
  • TextBox1:用來輸入要轉換的字串。
  • Button1:用來觸發轉換操作。
  • Label1:用來顯示轉換後的整數。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim str As String = TextBox1.Text
    Dim num As Integer

    If Integer.TryParse(str, num) Then
        Label1.Text = "轉換後的整數為:" & num.ToString()
    Else
        MessageBox.Show("字串格式不正確,無法轉換為整數。")
    End If
End Sub

在上面的例子中,使用 Integer.TryParse 方法嘗試將字串轉換為整數。如果轉換成功,num 變數就會被賦值為轉換後的整數,並將結果顯示在 Label1 中;如果轉換失敗,就會顯示一個錯誤提示。

CInt 函數

CInt 函數可以將其他類型的數據轉換為整數。它的使用方式比較簡單,但如果轉換失敗,會拋出 InvalidCastException 異常。例如:

使用的控制項:無
Dim str As String = "123"
Dim num As Integer = CInt(str) '結果為 123

Dim dbl As Double = 456.789
Dim num2 As Integer = CInt(dbl) '結果為 457

在上面的例子中,使用 CInt 函數將字串 "123" 轉換為整數 123,將雙精度浮點數 456.789 轉換為整數 457(四捨五入)。需要注意的是,如果要轉換的數據無法轉換為整數,例如字串的格式不正確,就會拋出 InvalidCastException 異常。

整數解析是程式開發中非常常見的操作。選擇合適的解析方法,可以提高程式的健壯性和可讀性。在實際開發中,要根據具體的場景和需求來決定使用哪種解析方法,並做好異常處理,以確保程式的正確性和穩定性。

整數應用範例

讓我們透過一個完整的範例來進一步理解整數在實際應用中的使用方式。在這個範例中,我們將創建一個簡單的計算器程式,展示整數運算和解析的實際應用。

範例:簡單計算器

這個範例允許使用者輸入兩個整數,選擇要進行的運算(加、減、乘、除),然後顯示計算的結果。

使用的控制項:
  • TextBox1:用來輸入第一個整數。
  • TextBox2:用來輸入第二個整數。
  • ComboBox1:用來選擇運算符號。
  • Button1:用來觸發計算操作。
  • Label1:用來顯示計算結果。

首先,在表單上添加相應的控制項,然後編寫以下程式碼:

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ComboBox1.Items.Add("+")
        ComboBox1.Items.Add("-")
        ComboBox1.Items.Add("*")
        ComboBox1.Items.Add("/")
        ComboBox1.SelectedIndex = 0 '預設選擇加法運算
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim num1, num2 As Integer
        Dim result As Integer

        '解析第一個整數
        If Not Integer.TryParse(TextBox1.Text, num1) Then
            MessageBox.Show("第一個數字格式不正確。")
            Return
        End If

        '解析第二個整數
        If Not Integer.TryParse(TextBox2.Text, num2) Then
            MessageBox.Show("第二個數字格式不正確。")
            Return
        End If

        '根據選擇的運算符號進行相應的計算
        Select Case ComboBox1.SelectedItem.ToString()
            Case "+"
                result = num1 + num2
            Case "-"
                result = num1 - num2
            Case "*"
                result = num1 * num2
            Case "/"
                If num2 = 0 Then
                    MessageBox.Show("除數不能為零。")
                    Return
                End If
                result = num1 / num2
        End Select

        '顯示計算結果
        Label1.Text = "計算結果:" & result.ToString()
    End Sub
End Class

程式步驟:

  1. 在表單載入時,將運算符號 "+"、"-"、"*"、"/" 添加到 ComboBox1 中,並預設選擇加法運算。
  2. 當使用者點擊 Button1 時,觸發 Button1_Click 事件。
  3. 使用 Integer.TryParse 方法嘗試將 TextBox1TextBox2 中的文字轉換為整數。如果轉換失敗,就顯示錯誤提示並結束事件處理。
  4. 根據 ComboBox1 中選擇的運算符號,使用 Select Case 語句進行相應的運算。如果選擇除法運算且除數為零,就顯示錯誤提示並結束事件處理。
  5. 將計算結果轉換為字串,並顯示在 Label1 中。