Go语言流程控制语句
在Go语言中,流程控制是任何编程语言中都不可避免的一部分。Go语言提供了几种流程控制语句,包括if语句、for循环、switch语句、break语句、continue语句和goto语句。本文将详细介绍这些语句及其使用场景。
if语句
if语句是Go语言中最基本也是最常用的流程控制语句之一,它用于根据一个条件判断来决定是否执行某段代码。if语句支持以下形式:
if 条件1 {
//条件1成立时执行的代码
}else if 条件2 {
//条件2成立时执行的代码
}else{
//所有条件都不成立时执行的代码
}
示例1:判断一个数是否是偶数。
package main
import "fmt"
func main() {
var num int
fmt.Print("请输入一个整数: ")
fmt.Scan(&num)
if num%2 == 0 {
fmt.Printf("%d是一个偶数", num)
} else {
fmt.Printf("%d是一个奇数", num)
}
}
示例2:根据成绩等级计算学生的评价。
package main
import "fmt"
func main() {
var grade int
fmt.Print("请输入学生的成绩: ")
fmt.Scan(&grade)
if grade >= 90 {
fmt.Println("优秀")
} else if grade >= 80 {
fmt.Println("良好")
} else if grade >= 70 {
fmt.Println("中等")
} else if grade >= 60 {
fmt.Println("及格")
} else {
fmt.Println("不及格")
}
}
for循环
for循环是用于重复执行一段代码的流程控制语句。它支持三种形式:for循环、while循环和do...while循环。这三种形式可以互相转换。
for循环
for循环是Go语言中最常用的循环结构,它支持以下形式:
for 初始语句;条件表达式;结束语句{
//循环体
}
说人话就是:初始语句用于初始化循环参数,条件表达式用于判断是否继续循环,结束语句用于更新循环参数。
示例1:计算1到10的和。
package main
import "fmt"
func main() {
sum := 0
for i := 1; i <= 10; i++ {
sum += i
}
fmt.Println("1+2+...+10 =", sum)
}
示例2:打印99乘法表。
package main
import "fmt"
func main() {
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d*%d=%d\t", j, i, i*j)
}
fmt.Println()
}
}
while循环
while循环在Go语言中不是关键字,但可以用for语句来实现。while循环的形式如下:
for 条件表达式{
//循环体
}
示例:
package main
import "fmt"
func main() {
i := 1
for i <= 10 {
fmt.Println(i)
i++
}
}
do...while循环
do...while循环在Go语言中也不是关键字,但可以使用for语句来实现。do...while循环的形式如下:
for {
//循环体
if !条件表达式 {
break
}
}
示例:从标准输入中输入整数,直到输入0为止。
package main
import "fmt"
func main() {
for {
var num int
fmt.Print("请输入一个整数(0退出): ")
fmt.Scan(&num)
if num == 0 {
break
} else {
fmt.Println(num)
}
}
}
switch语句
switch语句是用于根据一个值选择多条代码中的一条执行的流程控制语句。它支持以下形式:
switch 表达式 {
case 值1:
//条件1成立时执行的代码
case 值2:
//条件2成立时执行的代码
default:
//所有条件都不成立时执行的代码
}
示例1:判断一个学生成绩的等级。
package main
import "fmt"
func main() {
var grade int
fmt.Print("请输入学生的成绩: ")
fmt.Scan(&grade)
switch grade / 10 {
case 10, 9:
fmt.Println("优秀")
case 8, 7:
fmt.Println("良好")
case 6:
fmt.Println("及格")
default:
fmt.Println("不及格")
}
}
示例2:根据运算符计算两个数的结果。
package main
import "fmt"
func main() {
var num1, num2 float64
var operator string
fmt.Print("请输入第一个数: ")
fmt.Scan(&num1)
fmt.Print("请输入第二个数: ")
fmt.Scan(&num2)
fmt.Print("请输入运算符(+,-,*,/): ")
fmt.Scan(&operator)
switch operator {
case "+":
fmt.Println(num1+num2)
case "-":
fmt.Println(num1-num2)
case "*":
fmt.Println(num1*num2)
case "/":
fmt.Println(num1/num2)
default:
fmt.Println("输入的运算符不合法")
}
}
break语句
break语句用于跳出循环。在for循环、switch语句和select语句中都可以使用break语句。
示例:计算1到100之间所有偶数的和。
package main
import "fmt"
func main() {
sum := 0
for i := 1; i <= 100; i++ {
if i%2 == 1 {
continue
}
sum += i
}
fmt.Println("1到100之间所有偶数的和为:", sum)
}
continue语句
continue语句用于跳过本次循环的剩余部分,继续执行下一次循环。在for循环中使用此语句可以跳过某次处理,但是继续执行循环。
示例:输出所有奇数。
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i%2 == 0 {
continue
}
fmt.Println(i)
}
}
goto语句
goto语句在Go语言中被认为是一种不良方式,因为它会导致程序的逻辑跳转变得难以理解,不利于代码的阅读和维护。因此,除非在特殊情况下,一般情况下不应该使用它。它的形式如下:
LABEL:
//代码
goto LABEL
示例:使用goto语句打印1到100之间的奇数。
package main
import "fmt"
func main() {
i := 1
LOOP:
if i > 100 {
return
}
if i%2 == 0 {
goto SKIP
}
fmt.Println(i)
SKIP:
i++
goto LOOP
}
总结
本文通过对Go语言流程控制语句的详细讲解,使读者对它们的特点、用法和常见场景有了更深入的了解。在实际项目开发中,流程控制是不可或缺的一部分,合理运用它们可以有效提高代码的效率和质量。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Go语言流程控制语句 - Python技术站