go语言选择语句 switch case
2017-03-15 17:08
253 查看
根据传入条件的不同,选择语句会执行不同的语句。下面的例子根据传入的整型变量i的不同而打印不同的内容:
运行上面的案例,将会得到如下结果:
i = 0时,输出0;
i = 1时,输出1;
i = 2时,输出3;
i = 3时,输出3;
i = 4时,输出4, 5, 6;
i = 5时,输出4, 5, 6;
i = 6时,输出4, 5, 6;
i = 其他任意值时,输出Default。
比较有意思的是,switch后面的表达式甚至不是必需的,比如下面的例子:
在使用switch结构时,我们需要注意以下几点:
左花括号{必须与switch处于同一行;
条件表达式不限制为常量或者整数;
单个case中,可以出现多个结果选项;
与C语言等规则相反,Go语言不需要用break来明确退出一个case;
只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case;
可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个if...else...的逻辑作用等同。
再比如下面的例子
func (this *multiSort) Less(i, j int) bool {
p, q := &this.changes[i], &this.changes[j]
// Try all but the last comparison.
var k int
for k = 0; k < len(this.less)-1; k++ {
less := this.less[k]
switch {
case less(p, q):
// p < q, so we have a decision.
return true
case less(q, p):
// p > q, so we have a decision.
return false
}
// p == q; try the next comparison.
}
// All comparisons to here said "equal", so just return whatever
// the final comparison reports.
return this.less[k](p, q)
}
其中,less是一个函数
switch i { case 0: fmt.Printf("0") case 1: fmt.Printf("1") case 2: fallthrough case 3: fmt.Printf("3") case 4, 5, 6: fmt.Printf("4, 5, 6") default: fmt.Printf("Default") }
运行上面的案例,将会得到如下结果:
i = 0时,输出0;
i = 1时,输出1;
i = 2时,输出3;
i = 3时,输出3;
i = 4时,输出4, 5, 6;
i = 5时,输出4, 5, 6;
i = 6时,输出4, 5, 6;
i = 其他任意值时,输出Default。
比较有意思的是,switch后面的表达式甚至不是必需的,比如下面的例子:
switch { case 0 <= Num && Num <= 3: fmt.Printf("0-3") case 4 <= Num && Num <= 6: fmt.Printf("4-6") case 7 <= Num && Num <= 9: fmt.Printf("7-9") //http://www.cnblogs.com/osfipin/ }
在使用switch结构时,我们需要注意以下几点:
左花括号{必须与switch处于同一行;
条件表达式不限制为常量或者整数;
单个case中,可以出现多个结果选项;
与C语言等规则相反,Go语言不需要用break来明确退出一个case;
只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case;
可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个if...else...的逻辑作用等同。
再比如下面的例子
func (this *multiSort) Less(i, j int) bool {
p, q := &this.changes[i], &this.changes[j]
// Try all but the last comparison.
var k int
for k = 0; k < len(this.less)-1; k++ {
less := this.less[k]
switch {
case less(p, q):
// p < q, so we have a decision.
return true
case less(q, p):
// p > q, so we have a decision.
return false
}
// p == q; try the next comparison.
}
// All comparisons to here said "equal", so just return whatever
// the final comparison reports.
return this.less[k](p, q)
}
其中,less是一个函数
相关文章推荐
- go语言选择语句 switch case
- 【Go语言】【8】GO语言的条件语句和选择语句
- [go语言]控制语句
- go语言示例:for语句
- Go语言中的if条件语句使用详解
- GO语言学习笔记1(基本概念,条件循环语句)
- Go语言学习笔记3——控制语句
- Go 语言循环语句
- 【Go语言】【9】GO语言的循环语句
- Go 语言条件语句和循环语句
- go语言示例:if/else语句
- 我为什么选择go语言
- 奶爸业余单片机学习之:C语言基础——switch多分支选择语句
- go语言条件语句 if else
- go语言中if语句用法实例
- Python语言选择分支语句和小数位控制输出
- [Go语言]从Docker源码学习Go——if语句和map结构
- 为什么选择go语言?go语言的优势
- delphi学习笔记(2)-object pascal语言的语句 选择自 xmz2629 的 Blog
- Go 语言条件语句