Go之流程语句

1. if语句

package main
import "fmt"
/*if语句格式:
if 布尔表达式 {
	在布尔表达式为 true 时执行
}
if 布尔表达式 {
	在布尔表达式为 true 时执行
} else {
	在布尔表达式为 false 时执行
}
if 布尔表达式1 {
	在布尔表达式1为 true 时执行
} else if 布尔表达式2{
	在布尔表达式1为 false ,布尔表达式2为true时执行
} else{
	在上面两个布尔表达式都为false时,执行
}
*/
func main(){
	var a int = 10
	if a < 20 {
		fmt.Printf("a 小于 20\n")
	}
	fmt.Printf("a的值为:%d\n",a)
	print()
	if1()
}
/*if语句变体:
if statement; condition {
}
if condition{
}
*/
func if1(){
	// num的定义在if里,那么只能够在该if..else语句块中使用
	if num := 20; num % 2 == 0 {
		fmt.Println(num, "is even")
	} else {
		fmt.Println(num,"is odd")
	}
}

2. switch语句

package main
import "fmt"
func main() {
	var grade string = "B"
	var marks int = 70
	// switch 语句用于基于不同条件执行不同动作
	switch marks {
	case 90:
		grade = "A"
	case 80:
		grade = "B"
	default:
		grade = "C"
	}
	fmt.Printf("grade is :%s\n", grade)
	// 如果switch没有表达式,它会匹配true
	switch {
	case grade == "A":
		fmt.Printf("优秀\n")
	case grade == "B":
		fmt.Printf("良好\n")
	default:
		fmt.Printf("及格或者不及格\n")
	}
	switch1()
}
/*
	Go里面switch默认相当于每个case最后带有break,
	匹配成功后不会自动向下执行其他case,而是跳出整个switch,
	但是可以使用fallthrough强制执行后面的case代码。
*/
func switch1() {
	switch x := 5;x{
	case 5:
		x += 10
		fmt.Println(x)
		fallthrough
	case 6:
		x += 20
		fmt.Println(x)
	default:
		fmt.Println(x)
	}
}

运行结果:

grade is :C
及格或者不及格
15
35

3. for语句

package main
import "fmt"
func main() {
	var num1 int = 5
	var num2 int
	// for语句包括初始化、条件、post语句
	for num2 := 0; num2 < 10; num2++ {
		fmt.Printf("num2的值为:%d\n", num2)
	}
	// 只保留条件,效果与while相似
	for num2 < num1 {
		num2++
		fmt.Printf("num2的值为:%d\n", num2)
	}
	numbers := [6]int{1, 2, 3, 6}
	// for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环
	for i, x := range numbers {
		fmt.Printf("第%d位 * 的值 = %d\n", i, x)
	}
}

4. 跳出循环

package main
import "fmt"

func main() {
	for i := 1; i <= 10; i++ {
		if i > 5 {
			break	// break用于跳出循环体
		}
		fmt.Println(i)
	}
	fmt.Printf("line after for loop")

	for i := 1; i < 20; i++ {
		if i%2 == 0{
			continue	// continue用于跳出这次循环
		}
		fmt.Println(i)
	}
}

5. goto语句

package main
import "fmt"

func main() {
	var a int = 10
	// goto可以无条件地转移到过程中指定的行
	LOOP: for a < 20{
		if a == 15{
			a = a + 1
			goto LOOP
		}
		fmt.Printf("a的值为:%d\n",a)
		a++
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值