go语言基本动作练习<四>

package main

import "fmt"

func main()  {
	test36()
}

//1. if…else
//在 Go 语言中 if 关键字的作用和其它大部分语言相同,是用于测试某个布尔表达式或布尔值是否为真的。若为真则执行 if 之后 {} 中的语句,否则跳过这些语句。如果存在第二个分支,则需要使用 else 关键字,还需要增加分支的话就需要使用 else if 关键字了。
func test28()  {
	a := 10
	if a > 10 {
		fmt.Println("a大于10")
	} else if a < 0 {
		fmt.Println("a小于0")
	} else {
		fmt.Println("a的值是", a)
	}
}

//在 Go 语言中,if 后的条件表达式,还有一种特别的写法,可以在条件表达式之前写一个赋值表达式。
//
//if…else 的特殊用法:
func test29()  {
	if a := 10; a > 10 {    //赋值表达式和条件表达式之间使用;隔开
		fmt.Println("a大于10")
	} else {
		fmt.Println("a的值是", a)
	}
}

//2. switch…case
//Go 语言对 switch…case 的功能进行了扩展,它变得更加的通用。switch 之后可以什么都不带。case 也无需是一个固定值,也可以是一个布尔表达式,而且每一个 case 都是一个 独立的代码块,执行完了之后立刻跳出 switch,不需要使用 break。所以可以把 if…else 完美的改写成 switch…case 的形式。
func test30()  {
	a := "F"
	switch a {
	case "A", "a","F":
		fmt.Println("分数区间为90~100")
	case "B", "b":
		fmt.Println("分数区间为70~89")
	case "C", "c":
		fmt.Println("分数区间为0~70")
	default:
		fmt.Println("错误的评分")
	}
}

//switch…case Go 语言中的新用法:
func test31()  {
	a := 50
	switch {
	case a < 60:
		fmt.Println("不及格")
	case a < 80:
		fmt.Println("良好")
	case a <= 100:
		fmt.Println("优秀")
	default:
		fmt.Println("分数最多为100分")
	}
}

//Go 语言的循环语句
//在 Go 语言中减少了循环语句的关键字,仅有一个 for 关键字。但是并没有减少其功能,而且它更是兼容了其它语言中的while关键字的用法,甚至更强大。

//1. for 循环语句
//1.1 普通用法
//在 Go 语言中,for 循环之后一样可以跟三个语句,单次表达式;条件表达式;末尾循环体,但是它不需要使用()来包裹这三个表达式,写法上更加的简洁。同时它也和其它语言一样,可以任意省略这三个表达式。
func test32()  {
	for a := 0; a < 10; a++ {
		fmt.Println(a)
	}
}

//省略单次表达式代码示例:
func test33()  {
	a := 0
	for ; a < 10; a++ {//表达式可以省略,但是;不能省略
		fmt.Println(a)
	}
}

//1.2 代替 while 的用法
//在其它大部分语言中 for 循环中省略单次表达式和末尾循环体其实就和其它语句中的 while 用法一致了。所以在 Go 语言中,直接使用省去单次表达式和末尾循环体的 for 循环语句来代替 while 的用法,为了简便代码书写,Go 语言中 for 循环语句在省去单次表达式和末尾循环体时,可以不写分号。
func test34()  {
	a := 0
	for a < 10 { //和其它语言中的while(a<10)一致
		fmt.Println(a)
		a++
	}
}

//在我们的生产环境中,经常需要用到死循环的场景。所以在 Go 语言中新增了一个 for 关键字死循环的用法,让程序员不用写无聊的 for(;;){}和do{} while(1)。同时可以使用 break 和 continue 来控制循环。

//2.1 break跳出单层死循环
//在你想要结束一个死循环的时候,只需要执行一个 break 语句即可。
//
//代码示例:
func test35()  {
	a := 0
	for { //死循环的写法就是省略 单次表达式;条件表达式;末尾循环体
		fmt.Println(a)
		a++
		if a >= 10 {
			break //跳出死循环
		}
	}
}

//2.2 break跳出多层死循环
//在其它语言中,你很难去控制跳出循环的层数,在 Go 语言中提供了一种break LOOP的写法,可以使循环跳出到 LOOP 所在的位置。
func test36()  {
	a := 0
LOOP:
	for {
		for {
			fmt.Println(a)
			a++
			if a >= 10 {
				break LOOP //跳出循环至LOOP所在的层级
			}
		}
	}
}

//3. 小结
//本文主要介绍了 for 关键字在 Go 语言的循环中的用法:
//
//for 之后的语句不需要使用()包裹;
//break+LOOP的形式可以一次性跳出多层循环;
//for 可以和其它语言中的 while 一样使用;
//for{…} 的形式是一个死循环。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值