第四节:条件语句

if语句:

	if v>100{
		return 100
	}else if v<50{
		return 50
	}else {
		return v
	}

if语句不需要括号

用法进阶:

	const fileName  ="abc.txt"
	if contents,error := ioutil.ReadFile(fileName);error!=nil{
		fmt.Println(error)
	}else {
		fmt.Printf("%s\n",contents)
	}

注意:contents和error变量都是在if代码块中定义,在if之外就不能访问这个变量了。

总结:if的条件中可以赋值;if条件中赋值的变量的作用域只在if的代码块中。

switch:

func eval(a,b int, op string ) int  {
		var result int
	switch op {
	case "+":
		result=a+b

	case "-":
		result=a-b

	case "*":
		result=a*b

	case "/":
		result=a/b

	default:
		panic("unsupported operator:"+op)
	}
		return result
}

switch中不写break,go默认每个case会自动break.

测试自动break:

func grade(score int) string {
	g:=""
	switch  {
	case score<60:
		g="不及格\n"
	case score<70:
		g="d\n"
	case score<80:
		g="c\n"
	case score<90:
		g="a\n"
	case score<100:
		g="good\n"
	case score<0 || score>100:
		g="wrong score :"+string(score)+"\n"

	}
	return g
}

控制台输出为:

	fmt.Println(grade(50),
		        grade(65),
			    grade(78),
		        grade(85),
		        grade(93),
		        grade(105))

控制台:

不及格
 d
 c
 a
 good
 wrong score :i


Process finished with exit code 0

switch后面也可以不跟表达式,直接写在case上也可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值