Go 系列教程8. if-else 语句

这是我们 Golang 系列教程的第 8 篇。

if 是条件语句。if 语句的语法是

if condition {

}

如果 condition 为真,则执行 { 和 } 之间的代码。

不同于其他语言,例如 C 语言,Go 语言里的 { } 是必要的,即使在 { } 之间只有一条语句。

if 语句还有可选的 else if 和 else 部分。

if condition {

} else if condition {

} else {

}

if-else 语句之间可以有任意数量的 else if。条件判断顺序是从上到下。如果 if 或 else if 条件判断的结果为真,则执行相应的代码块。 如果没有条件为真,则 else 代码块被执行。

让我们编写一个简单的程序来检测一个数字是奇数还是偶数。

package main

import (

"fmt"

)

func main() {

num := 10

if num % 2 == 0 { //checks if number is even

fmt.Println("the number is even")

} else {

fmt.Println("the number is odd")

}

}

在线运行程序

if num%2 == 0 语句检测 num 取 2 的余数是否为零。 如果是为零则打印输出 "the number is even",如果不为零则打印输出 "the number is odd"。在上面的这个程序中,打印输出的是 the number is even。

if 还有另外一种形式,它包含一个 statement 可选语句部分,该组件在条件判断之前运行。它的语法是

if statement; condition {

}

让我们重写程序,使用上面的语法来查找数字是偶数还是奇数。

package main

import (

"fmt"

)

func main() {

if num := 10; num % 2 == 0 { //checks if number is even

fmt.Println(num,"is even")

} else {

fmt.Println(num,"is odd")

}

}

在线运行程序

在上面的程序中,num 在 if 语句中进行初始化,num 只能从 if 和 else 中访问。也就是说 num 的范围仅限于 if else 代码块。如果我们试图从其他外部的 if 或者 else 访问 num,编译器会不通过。

让我们再写一个使用 else if 的程序。

package main

import (

"fmt"

)

func main() {

num := 99

if num <= 50 {

fmt.Println("number is less than or equal to 50")

} else if num >= 51 && num <= 100 {

fmt.Println("number is between 51 and 100")

} else {

fmt.Println("number is greater than 100")

}

}

在线运行程序

在上面的程序中,如果 else if num >= 51 && num <= 100 为真,程序将输出 number is between 51 and 100。

获取免费的 Golang 工具

一个注意点

else 语句应该在 if 语句的大括号 } 之后的同一行中。如果不是,编译器会不通过。

让我们通过以下程序来理解它。

package main

import (

"fmt"

)

func main() {

num := 10

if num % 2 == 0 { //checks if number is even

fmt.Println("the number is even")

}

else {

fmt.Println("the number is odd")

}

}

在线运行程序

在上面的程序中,else 语句不是从 if 语句结束后的 } 同一行开始。而是从下一行开始。这是不允许的。如果运行这个程序,编译器会输出错误,

main.go:12:5: syntax error: unexpected else, expecting }

出错的原因是 Go 语言的分号是自动插入。你可以在这里阅读分号插入规则 https://golang.org/ref/spec#Semicolons。

在 Go 语言规则中,它指定在 } 之后插入一个分号,如果这是该行的最终标记。因此,在if语句后面的 } 会自动插入一个分号。

实际上我们的程序变成了

if num%2 == 0 {

fmt.Println("the number is even")

}; //semicolon inserted by Go

else {

fmt.Println("the number is odd")

}

分号插入之后。从上面代码片段可以看出第三行插入了分号。

由于 if{} else {} 是一个单独的语句,它的中间不应该出现分号。因此,需要将 else 语句放置在 } 之后处于同一行中。

我已经重写了程序,将 else 语句移动到 if 语句结束后 } 的后面,以防止分号的自动插入。

package main

import (

"fmt"

)

func main() {

num := 10

if num%2 == 0 { //checks if number is even

fmt.Println("the number is even")

} else {

fmt.Println("the number is odd")

}

}

在线运行程序

现在编译器会很开心,我们也一样 。

本章教程到此告一段落了,感谢您的阅读,欢迎您的任何评论和反馈。

下一个教程 - 循环

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月27日

PHP abspath函数代码示例

PHP abspath函数代码示例本文整理汇总了PHP中abspath函数的典型用法代码示例。如果您正苦于以下问题:PHP abspath函数的具体用法?PHP abspath怎么用?PHP abspath使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。在下文中一共展示了abspath函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您

PHP魔术常量__DIR__备忘

PHP魔术常量__DIR__备忘概述:本文简要讨论在TP5.0中定义目录常量时,用到的PHP魔术常量__DIR__的含义及其它相关的用法。截止到PHP7.4,通过官方手册查知,目前PHP一共有八个魔术常量,分别为:__LINE__,__FILE__,__DIR__,__FUNCTION__,__CLASS__,__TRAIT__,__METHOD__,__NAMESPACE__。__DIR__ 是

热门专题

易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招
易捷尔单招|易捷尔单招,易捷尔单招培训,易捷尔单招报名,易捷尔单招考试,易捷尔单招培训学校,易捷尔单招分数
易捷尔单招
云南综合高中|云南综合高中
云南综合高中
云南开放大学|云南开放大学报名,云南开放大学报考,云南开放大学,什么是云南开放大学,云南开放大学学历,云南开放大学学费,云南开放大学报名条件,云南开放大学报名时间,云南开放大学学历,云南开放大学专业
云南开放大学
天麻的功效与作用吃法|天麻的功效与作用,天麻的功效与作用吃法,天麻炖什么治头痛最好,天麻的功效与作用禁忌,天麻多少钱一斤,天麻的功效与作用吃法及禁忌,天麻怎么吃效果最好,天麻粉的功效与作用,天麻怎么吃
天麻的功效与作用吃法
安徽中源管业|安徽中源管业,安徽中源管业mpp电力管,安徽中源管业cpvc电力管,安徽中源管业pe穿线管,安徽中源管业电力管,安徽中源管业排水管,安徽中源管业通信管,安徽中源管业管材
安徽中源管业
APP开发|app开发_app开发公司_app软件开发_专业app开发_云南app开发公司_app定制_原生app开发定制
APP开发
大理科技管理学校|大理科技管理中等职业技术学校,大理市科技管理中等职业技术学校
大理科技管理学校

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部