内容简介:如果与 C 之类的其他语言不同,即使
- 原文地址: Part 8: if else statement
- 原文作者:Naveen R
- 译者:咔叽咔叽 转载请注明出处。
if
是条件语句,语法为,
if condition { } 复制代码
如果 condition
为 true
,介于 {}
之间的代码块将被执行。
与 C 之类的其他语言不同,即使 {}
之间只有一个语句, {}
也是强制性需要的。
else if
和 else
对于 if
来说是可选的。
if condition { } else if condition { } else { } 复制代码
if else
的数量不受限制,它们从上到下判断条件是否为真。如果 if else
或者 if
的条件为 true
,则执行相应的代码块。如果没有条件为真,则执行 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
语句检查将数字除以 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
注意事项
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
语句接近 }
之后的同一行开始。相反,它从下一行开始。 Go 中不允许这样做,如果运行此程序,编译器将输出错误,
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") } 复制代码
因为 {...} else {...}
是一个语句,所以在它的中间不应该有分号。因此,需要将 else
放在`}后的同一行中。
我已经通过在 if
语句的 }
之后插入 else
来重写程序,以防止自动分号插入。
package main import ( "fmt" ) func main() { if num := 10; num % 2 == 0 { //checks if number is even fmt.Println("the number is even") } else { fmt.Println("the number is odd") } } 复制代码
现在编译器可以正常执行了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- MySQL 建表语句转 PostgreSQL 建表语句全纪录
- Go语言开发-过程式编程-通信和并发语句-Select语句
- SQL语句优化之JOIN和LEFT JOIN 和 RIGHT JOIN语句的优化
- Python 条件语句
- Python 循环语句
- Python break 语句
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python语言及其应用
[美] Bill Lubanovic / 丁嘉瑞、梁杰、禹常隆 / 人民邮电出版社 / 2016-1 / 79.00元
本书介绍Python 语言的基础知识及其在各个领域的具体应用,基于最新版本3.x。书中首先介绍了Python 语言的一些必备基本知识,然后介绍了在商业、科研以及艺术领域使用Python 开发各种应用的实例。文字简洁明了,案例丰富实用,是一本难得的Python 入门手册。一起来看看 《Python语言及其应用》 这本书的介绍吧!