Go 语言条件语句

Go 语言条件语句

在编程语言中,条件语句用于根据特定条件执行不同的代码路径。Go 语言提供了几种条件语句,包括 ifswitchselect。这些语句使得程序可以根据不同的条件执行不同的操作,从而实现程序的逻辑分支。

1. if 语句

if 语句是 Go 语言中最基本的条件语句。它根据一个布尔表达式的值来决定是否执行一段代码。if 语句的基本格式如下:

if condition {
    // 条件为真时执行的代码
}

如果条件为真,则执行大括号内的代码块。如果条件为假,则跳过该代码块。

示例

package main

import "fmt"

func main() {
    age := 20
    if age >= 18 {
        fmt.Println("你已经成年了")
    }
}

在这个例子中,如果 age 的值大于或等于 18,程序将打印出 "你已经成年了"。

2. if...else 语句

if...else 语句在 if 语句的基础上增加了另一种选择。如果 if 的条件为假,则执行 else 代码块。格式如下:

if condition {
    // 条件为真时执行的代码
} else {
    // 条件为假时执行的代码
}

示例

package main

import "fmt"

func main() {
    age := 16
    if age >= 18 {
        fmt.Println("你已经成年了")
    } else {
        fmt.Println("你还未成年")
    }
}

在这个例子中,如果 age 的值小于 18,程序将打印出 "你还未成年"。

3. if...else if...else 语句

if...else if...else 语句用于在多个条件之间进行选择。格式如下:

if condition1 {
    // 条件1为真时执行的代码
} else if condition2 {
    // 条件2为真时执行的代码
} else {
    // 所有条件都为假时执行的代码
}

示例

package main

import "fmt"

func main() {
    score := 85
    if score >= 90 {
        fmt.Println("优秀")
    } else if score >= 80 {
        fmt.Println("良好")
    } else {
        fmt.Println("及格")
    }
}

在这个例子中,根据 score 的值,程序将打印出 "优秀"、"良好" 或 "及格"。

4. switch 语句

switch 语句用于基于不同的情况执行不同的代码块。它提供了比多个 if...else if...else 语句更清晰、更简洁的方式来处理多个条件。格式如下:

switch variable {
case value1:
    // 变量为 value1 时执行的代码
case value2:
    // 变量为 value2 时执行的代码
// ...
default:
    // 所有 case 都不匹配时执行的代码
}

示例

package main

import "fmt"

func main() {
    day := 3
    switch day {
    case 1:
        fmt.Println("星期一")
    case 2:
        fmt.Println("星期二")
    case 3:
        fmt.Println("星期三")
    // ...
    default:
        fmt.Println("无效的星期")
    }
}

在这个例子中,根据 day 的值,程序将打印出对应的星期。

5. select 语句

select 语句用于处理多个通道(channel)的操作。它随机选择一个准备好通信的通道进行操作。格式如下:

select {
case <-channel1:
    // 从 channel1 接收数据时执行的代码
case channel2 <- 1:
    // 向 channel2 发送数据时执行的代码
// ...
default:
    // 所有通道都不满足条件时执行的代码
}

示例

package main

import (
    "fmt"
    "time"
)

func main() {
    c1 := make(chan string)
    c2 := make(chan string)

    go func() {
        time.Sleep(1 * time.Second)
        c1 <- "Hello"
    }()
    go func() {
        time.Sleep(2 * time.Second)
        c2 <- "World"
    }()

    select {
    case msg1 := <-c1:
        fmt.Println(msg1)
    case msg2 := <-c2:
        fmt.Println(msg2)
    case <-time.After(3 * time.Second):
        fmt.Println("超时")
    }
}

在这个例子中,select 语句等待 c1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值