条件判断语句:
if else语句
注意:表达式后跟的左括号必须与表达式放在同一行,否则编译无法通过
if还有一种常见写法,在表达式前面添加一个语句,使用变量接受语句的返回的值,通过对该变量的判断再选择执行分支。\
func main(){
num := 101
if num > 100{
fmt.Println(a," > 100")
}else if num == 100 {
fmt.Println(a," = 100")
}else{
fmt.Println(a," < 100")
}
//常见写法
if num := runtime.NumCPU; num >= 1{
fmt.Println("程序使用的CPU核数为:",num)
}
}
//结果为:
a > 100
程序使用的CPU核数为:2
switch语句
每个case语句都可以用If来代替,能用if就不要用switch
一般switch语句用于断言
如果需要无条件强制执行后面的case,可使用fallthrough关键字
func main(){
switch {
case false:
fmt.Println("case1:false")
fallthrough
case true:
fmt.Println("case2:true")
fallthrough
default:
fmt.Println("默认为case")
}
}
//结果为:
case2:true
默认为case
循环控制语句:
for 初始语句;条件表达式;赋值表达式 {循环体}
break默认跳出内层循环,可通过标签跳出最外层循环
continue与break类似
func main(){
OuterLoop:
for i := 0;i < 3;i++{
if i == 2{
break OuterLoop //跳出标签对应循环
}
for j := 0;j < 3;j++{
if j == 1{
fmt.Println(i,j)
continue OuterLoop //开始标签对应循环
}
}
}
}
//结果为:
0 1
1 1
跳转语句
用于代码间的无条件跳转(跳过中间的代码),不建议推荐使用,过多的goto语句会破坏程序的可读性。
go版爱心代码
func main(){
letterList := make([]string,0)
for y := 6;y > -6;y--{
letters := ""
for x := 15;x > -15;x--{
expression := powerf((powerf(float64(x)*0.1,2)+powerf(float64(y)*0.2,2)-1),3)-powerf(float64(x)*0.1,2)*powerf(float64(y)*0.2,3)
if expression <= 0{
letters += "+"
}else{
letters += " "
}
}
letterList = append(letterList,letters)
}
fmt.Println(strings.Join(letterList,"\n"))
}
func powerf(x float64,n int) float64{
ans := 1.0
for n != 0{
if n%2 == 1{
ans *= x
}
x *= x
n /=2
}
return ans
}
结果为: