概述
文章目录
- 导言
- `if`语句
- 介绍
- 疑难杂症
- 原作者留言
- 最后
导言
- 原文链接: Part 8: if else statement
- If translation is not allowed, please leave me in the comment area and I will delete it as soon as possible.
if
语句
介绍
if
是条件语句,语法如下:
if condition {
// 代码块
}
如果 condition
等于 true
,if
的代码块会被执行。
与 C
语言不同,在 Go
语言 中,即使代码块之间只有一条语句,{
、}
也不能被省略。
if
语句 还能加入 else
、else if
组件。
if condition {
} else if condition {
} else {
}
if
语句 的 condition
为 false
时,程序就会执行 离它最近的 else
语句 的代码。
我们可以添加无数个 else if
组件,程序会从上到下判断这些组件的 condition
,直到遇到 等于true
的 condition
,此时程序执行其对应的代码块。
我们来写个程序,判断数的奇偶性:
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
的余数是否为 0
,如果为 0
,则执行 fmt.Println("the number is even")
,否则执行 fmt.Println("the number is odd")
。
运行程序,输出如下:
the number is even
这里还有一个 if
语句 的变体,这个变体加入了 statement
组件 — statement
语句 会在 condition
判断前执行。句式如下:
if statement; condition {
}
通过这个 if
语句 的变体,我们重写下之前的程序。
重写后的程序如下:
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
语句 中初始化。这里需要注意:此时,我们只能在 if else
代码块 中访问 变量num
。即,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
为 true
,所以程序将会输出:
number is between 51 and 100
疑难杂症
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")
}
}
在上面的代码中, else
并没有和 }
在同一行,而是在 }
的下一行。Go
语言 不允许这样的情况发生。
运行程序,编译器会输出如下错误:
main.go:12:5: syntax error: unexpected else, expecting }
为什么 else
与 }
要在同一行呢?这与 Go
的 分号自动插入机制 有关。根据规则,当 }
处于行末时,编译器会在 }
之后插入分号。
于是,我们的代码会变为:
if num%2 == 0 {
fmt.Println("the number is even")
}; //semicolon inserted by Go
else {
fmt.Println("the number is odd")
};
因为 if{...}
和 else {...}
构成了一个整体,它们之间不应有分号,所以我们只能把 else
放在最近的 }
之后,从而防止编译器在 if{...}
、else {...}
之间插入分号。
下面,我把 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")
}
}
现在程序就可以正常运行了,输出如下:
the number is even
这就是 if
语句 了~
祝你越来越可爱~
原作者留言
优质内容来之不易,您可以通过该 链接 为我捐赠。
最后
感谢原作者的优质内容。
欢迎指出文中的任何错误。
最后
以上就是安详仙人掌为你收集整理的Go语言 if语句的全部内容,希望文章能够帮你解决Go语言 if语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复