最新消息:yaf表单扩展中新增加了浮点数、日期和集合的校验。php yaf框架扩展实践三——表单

Go语言的流程控制if/else,switch,for

Golang 3805浏览 0评论

if/else

和C语言不太一样,if中的条件表达式不需要花括号

i := 1
if i%2 == 1 {
    fmt.Print("odd")
} else {
    fmt.Print("even")
}

在条件表达式中可以直接初始化变量,像这样使用

if i := 1; i%2 == 1 {
    fmt.Print("odd")
} else {
    fmt.Print("even")
}

switch

和c语言类似,不同点主要在于case后面可以跟一个条件表达式,不一定要常量表达式

i := 1
switch {
    case i%2 == 0:
        fmt.Print("even")
    case i%2 == 1:
        fmt.Print("odd")
}

多种情况一个结果的,可以这样写

switch c {
    case 'a', 'e', 'i', 'o', 'u':
        fmt.Print("vowel")
    default:
        fmt.Print("other")
}

for

Go语言没有while循环,只有for循环

求1-9的和:

sum := 0
for i := 1; i < 10; i++ {
    sum += i
}

循环遍历数组:

arr := [3]int{1,2,3}
for i := 0; i < len(arr); i++ {
    fmt.Print(arr[i])
}

循环遍历数组也可以这样写,利用range

arr := [3]int{1,2,3}
for i, v := range arr { //i表示索引,v表示对应的值
    fmt.Printf("arr[%d]=%d", i, v)
}

如果不需要索引i,只需要值v,可以用下划线代替i

arr := [3]int{1,2,3}
for _, v := range arr { //用下划线代替i
    fmt.Println(v)
}

goto(建议不要使用)

在Go语言里还有一个流程控制语句goto,不过我强烈建议不要使用,因为在程序越来越复杂时,会很难维护,以下给个简单的示例:

i := 1
goto sign   //跳转到sign去
i += 1 //被忽略掉了
sign:   //标记符号
fmt.Print(i) //输出1

转载请注明:快乐编程 » Go语言的流程控制if/else,switch,for

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址