流程控制介绍

流程控制介绍

1.顺序控制
没有任何跳转语句,按顺序执行
2.分支控制
在这里插入图片描述
golang支持在if中直接定义一个变量:
在这里插入图片描述
在这里插入图片描述
上面图片中有一处错误,else必须写在上一行,紧凑着第二个大括号:}
下面的代码才是正确写法:

	if i<9{
		fmt.Println("ok...")
	}else{
		fmt.Println("no...")
	}

所以:
在这里插入图片描述
if后面的条件最好使用括号。
在这里插入图片描述
从上往下执行,一旦有一条满足条件,只会执行那一条,接下来就算满足条件也不会再执行了。

在这里插入图片描述
上图分析:如果是在c/c++或者其他一些编程语言当中,可以通过编译,将false赋值给b,然后b就为false。
但在go中,if后面只能是条件语句或者定义一个变量+条件语句

嵌套分支
在这里插入图片描述
switch分支控制
在这里插入图片描述
在这里插入图片描述
golang的case后的表达式可以有多个,使用逗号隔开。
程序执行哇case语句块后自动退出Switch,所以不需要在每个case语句最后加break。
在这里插入图片描述
switch细节:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是这个case 5改成case n1就不会报错,将常量改成变量,就可以与前面的重复。

在这里插入图片描述
7):
在这里插入图片描述
8):
在这里插入图片描述
9):
在这里插入图片描述
如果case 10满足并执行后,直接穿透下一层case 20,也就是说虽然num不等于20,但case 20语句依旧可以执行,不需要判断是否符合条件,只能穿透一层。如果case 20后面再加一个穿透,那么case 30也会执行。

这个穿透了解就好,平常不建议使用。
在这里插入图片描述
interface:接口

在这里插入图片描述

3.循环控制

for循环,for后面不能加括号

func main(){
	for i:=1;i<=10;i++ {
		fmt.Println("3")
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
golang提供for_range的方式,可以方便遍历字符串和数组。
在这里插入图片描述
index的值是每个字符对应的位置下标,类似于数组。要是不想要index,可以用下划线代替,如下面代码:

func main(){
	var str string="hello"
	for _,val:=range str {
		fmt.Printf("%c",val)
	}
}

在这里插入图片描述
处理办法:利用rune切片
在这里插入图片描述
str2的数据类型不能string,否则报错。
但对于for-range的方式来遍历字符串的话,字符串中有中文也是可以照常输出的。

go语言中没有while和do…while,可以用for来实现其效果。
模拟while:
在这里插入图片描述
模拟do…while:
在这里插入图片描述
多重循环控制
在这里插入图片描述
利用多重循环打印金字塔

package main
import (
	"fmt"
)

func main(){
	var n int;
	fmt.Scanf("%d",&n)
	for i:=1;i<=n;i++ {
		for k:=1;k<=n-i;k++ {
			fmt.Print(" ")
		}
		for j:=1;j<=2*i-1;j++ {
			fmt.Print("*")
		}
		fmt.Println()
	}
}

打印九九乘法表

package main
import (
	"fmt"
)

func main(){
	for i:=1;i<=9;i++{
		for j:=1;j<=i;j++{
			fmt.Printf("%d*%d=%d \t",j,i,j*i)
		}
		fmt.Println()
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值