博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go语言中的判断与分支
阅读量:6257 次
发布时间:2019-06-22

本文共 1728 字,大约阅读时间需要 5 分钟。

  hot3.png

主要讲解Go语言中 if、switch 定义和使用

 

主要知识点:

  • if 关键字普通用法
  • if 表达式中 定义变量,定义的变量只能在 if 作用域中使用
  • swith两种写法示例
  • swith中的 case 自带 break,如果需要继续往下判断执行则需要使用关键字 fallthrough

以下为代码示例:

package mainimport (	"io/ioutil"	"fmt")// if 普通用法,读取文件示例func readFile1(){	const fileName = "abc.txt"	//在Go中 一个方法可以返回两个值	contents,err := ioutil.ReadFile(fileName)	if err !=nil {		fmt.Println(err) //open abc.txt: The system cannot find the file specified.	}else{		fmt.Printf("%s",contents); // xxx 文件内容	}}// if 进阶用法 ,读取文件示例// 此种写法,在 if 中定义的变量 只能在 if 作用域中使用func readFile2(){	const fileName = "abc.txt"	if contents,err := ioutil.ReadFile(fileName);err !=nil{		fmt.Println(err) //open abc.txt: The system cannot find the file specified.	}else{		fmt.Printf("%s",contents) // xxx 文件内容		fmt.Println()	}}//Switch 用法1 :switch 后跟变量名// 此方法模拟四则运算,返回多个值,第二个返回错误信息func eval(a,b int ,op string) (int,error) {	switch op{	case "+":		return a+b,nil	case "-":		return a-b,nil	case "*":		return a*b,nil	case "/":		return a/b,nil	default:		return 0,fmt.Errorf("unsupported operator:"+op)	}}//Switch 用法2//Switch 后不加表达式的 情况,在case中进行表达式判断,每个case 自带 break,不用自己手动添加 break,// 如果需要继续往下  判断,需要手工添加 关键字  fallthrough// 此方法 用于判断 分数所在的 等级func grade(score int) string{	g :=""	switch{	case score <0 || score >100 :		//使用 panic 关键字 排除错误后,会中断程序执行		panic(fmt.Sprintf("Wrong stroe :%d",score))	case score < 60 :		g="F"	case score <80 :		g="C"	case score <90 :		g="B"	case score<=100 :		g="A"	}	return g}func main() {	readFile1()	readFile2()	fmt.Println(eval(3,4,"+")); //7 
fmt.Println(eval(3,4,"*")); //12
fmt.Println( grade(0), //F grade(59),//F grade(79),//C grade(89),//B grade(99),//A grade(100),//A //grade(190), //报错,程序中断执行 )}

 

转载于:https://my.oschina.net/ruoli/blog/1815455

你可能感兴趣的文章
大道至简 电话号码重新成为O2O新宠
查看>>
Office 365离线安装
查看>>
jar包与was版本不兼容怎么办
查看>>
将Windows Server 2008 R2网络升级到Windows Server 2012
查看>>
修改计算机名的注意事项
查看>>
WIN7关闭共享后怎样去掉图标上的小锁
查看>>
SRV记录注册不成功的可能的原因
查看>>
一步完成 MySQL 向 Redis 迁移
查看>>
【VMC实验室】在QCloud上创建您的SQL Cluster(4)
查看>>
我的友情链接
查看>>
卢松松:每个网站都该有个监测服务
查看>>
Memcache与MySQL并肩作战
查看>>
使用Android模拟器测试Linux驱动(1)
查看>>
验证码广告:站长增加收入新渠道
查看>>
objective-c 枚举王国遍历数组
查看>>
C# WinForm开发系列 - OWC
查看>>
关于利用VS2008创建项目遇到的小困惑备忘
查看>>
发布一款域名监控小工具——Domain(IP)Watcher
查看>>
VBS中数组的各种处理方式
查看>>
通用数据权限管理系统设计
查看>>