Go 语言中可以在 if 或 else if 语句中嵌入若干个 if 或 else if 语句。
Go语言中if...else语句的语法如下:
if 布尔表达式1 {
/* 在布尔表达式1为true时执行*/
if 布尔表达式2{
/* 在布尔表达式2为true时执行*/
}
}
例:以嵌套的方式判断学生成绩
package main
import "fmt"
func main() {
if score := 98 ; scorce=>60 {
if score => 70 {
if score => 80 {
if score => 90 {
fmt.Printfln("优")
} else {
fmt.Printfln("良")
}
} else {
fmt.Printfln("中等")
}
} else {
fmt.Printfln("及格")
}
}else {
fmt.Printfln("不及格")
}
}
循环控制语句
一. Go语言break语句
break,跳出循环体。break 语句用于终止当前正在执行的 for 循环,并开始执行循环之后的语句。Go语言中 break 语句可以结束 for、switch 和 select 的代码块,另外 break 语句还可以在语句后面添加标签,表示退出某个标签对应的代码块,标签要求必须定义在对应的 for、switch 和 select 的代码块上。
package main
import "fmt"
func main() {
for i:= 1 ; i<= 10 ; i++ {
if i>5 {
break //如果i>5,则循环终止(loop is terminated)
}
fmt.Printf("%d",i)
}
fmt.Printf("\n line after for loop")
}
二.Go语言continue语句
Go 语言的 continue 语句有点像 break 语句。但是 continue 不是跳出循环,而是跳过当前循环,执行下一次循环语句。for 循环中,执行 continue 语句会触发 for 增量语句的执行。换言之,continue 语句用于跳过 for 循环的当前迭代,循环将继续到下一个迭代。仅限在 for 循环内使用,在 continue 语句后添加标签时,表示开始标签对应的循环,例如:
package main
import "fmt"
func main() {
OuterLoop:
for i := 0; i < 2; i++ {
for j := 0; j < 5; j++ {
switch j {
case 2:
fmt.Println(i, j)
continue OuterLoop //代码说明:将结束当前循环,开启下一次的外层循环,而不是内层for循环。
}
}
}
break 与 continue 的区别如下。
• break 语句无条件跳出并结束当前的循环,然后执行循环体后的语句。
• continue 语句跳过当前的循环,而开始执行下一次循环。
三.Go语言goto语句
Go 语言的 goto 语句可以无条件地转移到程序指定的行。goto 语句通常与条件语句配合使用。可用来实现条件转移、构成循环、跳出循环体等功能。但是,在结构化程序设计中一般不建议使用 goto 语句,以免造成程序流程的混乱,使理解和调试程序都产生困难。
goto语法格式:
LABEL : statement
goto LABEL
例:借助goto跳转来输出1~50的素数
package main
import "fmt"
func main() {
var C , c int
C = 1
LOOP :
for C<50 {
C++ //C=1 不能写入这里就不能写入
for c = 2 ; c<C ; c++ {
if C%c == 0{
goto LOOP //若发现因子不是素数
}
}
fmt.Printf("%d\n",C)
}
}