[Golang cơ bản] If-else trong golang

Post on: 2023-04-04 00:44:17 | in: Golang
Trong Golang, if-else được sử dụng để kiểm tra một điều kiện và thực hiện một số lệnh nếu điều kiện đúng hoặc sai.

Tổng quan

Golang cũng có câu lệnh if-else giống như bất kỳ ngôn ngữ lập trình nào khác để thực hiện các điều kiện cơ bản. Dưới đây là định dạng của câu lệnh if-else trong golang:

if condition {
   //Do something
} else if condition {
   //Do something
} else {
   //Do something

}

Trước khi chúng ta đi đến phần tiếp theo, hãy nói về điều kiện trước. Chỉ có một câu lệnh hoặc một kết hợp các câu lệnh dẫn đến giá trị boolean được cho phép làm điều kiện trong if. false boolean được xem như false trong điều kiện trong go và true boolean được xem như true. Như đã đề cập ở trên, điều kiện có thể được tổ hợp từ nhiều câu lệnh được kết hợp bởi các toán tử trong Go như &&, ||,>, <,> =, <=,! vv.

Bây giờ hãy xem xét câu lệnh if-else chi tiết để hiểu các điều nhỏ. Go hỗ trợ các định dạng sau cho câu lệnh if-else

  • Chỉ có if
  • If Else
  • If Else Ladder
  • If lồng nhau-else
  • If với một câu lệnh ngắn

Lệnh If (If statement)

Câu lệnh if đơn thuần có định dạng như sau

if condition {
   //Do something
}

Nếu điều kiện đúng thì câu lệnh trong dấu ngoặc nhọn sẽ được thực thi. Một vài điểm cần lưu ý về câu lệnh if

  • Có thể bỏ qua các dấu ngoặc đơn quanh điều kiện.
  • Dấu ngoặc mở và đóng sau điều kiện là bắt buộc.

Hãy xem ví dụ hoạt động. Chương trình dưới đây kiểm tra xem một số có lớn hơn 5 không.

package main

import "fmt"

func main() {
    a := 6
    if a > 5 {
        fmt.Println("a is greater than 5")
    }
}

Output

a is greater than 5

Hãy xem một ví dụ khác về nhiều lệnh trong một điều kiện if. Dưới đây là một chương trình để kiểm tra xem một số có nằm trong một khoảng nhất định hay không. Lưu ý rằng nhiều câu lệnh trong điều kiện được kết nối bởi toán tử &&.

package main

import "fmt"

func main() {
    a := 4
    if a > 3 && a < 6 {
        fmt.Println("a is within range")
    }
}

Output

a is within range

Câu lệnh If Else

Câu lệnh If Else có định dạng như sau

if condition {
   //Do something
} else {
   //Do something
}

Nếu điều kiện là đúng thì câu lệnh bên trong khối if được thực thi, nếu không thì câu lệnh bên trong khối else được thực thi. Một số điểm lưu ý về câu lệnh if-else.

  • Từ khóa else phải ở cùng một dòng với dấu ngoặc nhọn đóng cho nó. Nếu không, sẽ xảy ra lỗi biên dịch như sau.
syntax error: unexpected else, expecting }

Dưới đây là một ví dụ nhỏ về câu lệnh if else. Trong chương trình dưới đây, chúng ta sử dụng câu lệnh if else để tìm ra số lớn nhất của 2 số.

package main

import "fmt"

func main() {
    a := 1
    b := 2

    if a > b {
        fmt.Println("a is greater than b")
    } else {
        fmt.Println("b is greater than a")
    }
}

Output

b is greater than a

If Else Ladder

If Else ladder có định dạng như sau

if condition1 {
   //Do something
} else if condition2 {
   //Do something
} else {
  //Do something
}

Một số điểm cần lưu ý về If Else ladder này

  • Bất kỳ số lượng hoặc câu lệnh nào khác có thể được thêm vào giữa
  • else if nằm trên cùng một dòng với dấu ngoặc nhọn trước đó

Dưới đây là một ví dụ. Mã đưa ra một tuổi sử dụng một if else ladder để đưa ra độ tuổi của một người "Kid", "Young" hoặc "Old".

package main

import "fmt"

func main() {
    age := 29
    if age < 18 {
        fmt.Println("Kid")
    } else if age >= 18 && age < 40 {
        fmt.Println("Young")
    } else {
        fmt.Println("Old")
    }
}

Output:

Young

If Else lồng nhau

Dưới đây là một số định dạng cho if else lồng nhau.

Chỉ lồng if

if condition {
  //Do something
  if condition2 {
    //Do something
  }
  //Do something
}

Lồng if else

if condition1 {
   //....
   if condition2 {
      //...
   } else {
      //...
   }
  //...
}

Dưới đây là một ví dụ cho cấu trúc lồng nhau của câu lệnh if else

if condition1 {
   //...
} else {
   //...
   if condition2 {
      //...
   } else {
     //....
   }
   //....
}

Hãy xem một ví dụ về hoạt động của if lồng nhau. Trong chương trình dưới đây, chúng tôi in giá trị lớn nhất của 3 số bằng cách sử dụng if lồng nhau.

package main

import "fmt"

func main() {
    a := 1
    b := 2
    c := 3
    if a > b {
        if a > c {
            fmt.Println("Biggest is a")
        } else if b > c {
            fmt.Println("Biggest is b")
        }
    } else if b > c {
        fmt.Println("Biggest is b")
    } else {
        fmt.Println("Biggest is c")
    }
}

Output:

Biggest is c

If với một câu lệnh ngắn

Câu lệnh if cũng hỗ trợ một câu lệnh trước điều kiện. Câu lệnh này sẽ được thực thi trước khi kiểm tra điều kiện. Cũng có thể khai báo biến mới trong câu lệnh đó. Dưới đây là định dạng cho điều đó.

if statement; condition {
   //Do something
}

Dòng khởi tạo nếu có trong câu lệnh sẽ là khai báo ngắn gọn. Lưu ý là từ khóa var không được hỗ trợ trong câu lệnh. Hãy xem một ví dụ hoạt động.

package main

import "fmt"

func main() {
    if a := 6; a > 5 {
        fmt.Println("a is greater than 5")
    }
}

Output

a is greater than 5

Điều quan trọng cần lưu ý ở đây là biến được khởi tạo trong câu lệnh if có sẵn sẽ có sẵn trong tất cả các nhánh. Như trong ví dụ dưới đây, biến a cũng có sẵn trong khối else.

package main

import "fmt"
​​​​​​​
func main() {
    if a := 1; a > 5 {
        fmt.Println("a is greater than 5")
    } else {
        fmt.Println("a is less than 5")
    }
}

Output:

a is less than 5

Điều kiện trong if

Nếu như ta đã đề cập ở đầu, thì chỉ giá trị boolean hoặc các câu lệnh trả về giá trị boolean mới được phép sử dụng trong điều kiện của if. Dưới đây là một ví dụ về lỗi phát sinh nếu sử dụng bất kỳ giá trị nào khác boolean:

package main

import "fmt"
​​​​​​​
func main() {
    if 1 {
        fmt.Println("a is greater than 5")
    }
}

Output: Lỗi biên dịch sau đây được ném ra:

non-bool 1 (type int) used as if condition

Toán tử ba ngôi (ternary operator)

Go không hỗ trợ toán tử ba ngôi, do đó bạn cần sử dụng câu lệnh if else để thay thế cho nó.

Tổng kết

Đây là tất cả những gì cần biết về câu lệnh if else trong Go. Mong rằng bạn đã thích bài viết này. Vui lòng chia sẻ phản hồi / cải tiến / sửa lỗi trong phần bình luận.

Tag: golang cơ bản go