Go语言基础之流程控制

if

流程控制是每种编程语言中的精髓
代码案例

if else

package main

import "fmt"
func main(){

	age := 19

	if age > 18 { // 条件满足
		fmt.Println("小明18岁了!")
	}else{// 条件不满足
		fmt.Println("小明还在读书。")
	}
}

if else 变体

// 作用域
	// age变量此时只在if条件判断语句中生效
	// 这样做的目的是为了减小内存消耗
	if age:=19; age > 18 { // 条件满足
		fmt.Println("小明18岁了!")
	}else{// 条件不满足
		fmt.Println("小明还在读书。")
	}

for 循环

基本式

for i := 0; i < 10; i++{
		fmt.Println(i);
	}

变体1

// 变体
		var i = 5;

		for; i < 10 ; i ++{
			fmt.Println(i)
		}

变体2(用的少)

var i = 5

	for i < 10 {
		fmt.Println(i)
		i++
	}

无限循环

for{
		循环语句
	}

for range

// for range 循环

	s := "fasdfasdfasdf循环"

	for i , v := range s{
		fmt.Printf("%d %c\n",i, v)
	}

控制流程执行期间结束

// 控制流程值跳出for循环
	
	for i := 0; i < 10; i++ {
		fmt.Printf("%d\t",i);
		if(i == 5) {
			break
		}
		fmt.Println();
	}

控制流程跳过某一项

// 控制流程中断后继续
	for i := 0; i < 10; i++ {
		fmt.Printf("%d\t",i);
		if(i == 5) {
			continue;
		}
		fmt.Println();
	}

switch 控制语句

package main

import "fmt"

func main()  {

	for i := 0; i < 10; i++ {
		switch i {
		case 1:
			fmt.Println("这个是1")
		case 3: 
			fmt.Println("这个是3")
		}
	}
}

switch 变体1

switch n:=3; n {
			case 246810:
				fmt.Println("偶数")
			case 357911: 
				fmt.Println("奇数")
			default:
				fmt.Println("default")
			}

分支还可以使用表达式,这个时候的switch语句后面不需要再跟判断变量

age := 30
	switch  {
	case age <= 25:
		fmt.Println("好好学习吧")
	case age >= 30: 
		fmt.Println("好好工作吧")
	case age >= 65:
		fmt.Println("好好享受吧")
	default: 
		fmt.Println("活着就好")
	}

fallthrough 语法可以执行麻竹条件的case的下一个case,是为了兼容C语言中的case 条件设计的。

s:="a"
	switch {
	case s == "a":
		fmt.Println("a")
		fallthrough
	case s=="b":
		fmt.Println("c")
	default:
		fmt.Println("...")
	}

//a
//b

goto(跳转到指定标签)

goto 语句通过标签进行代码间的无条件跳转。goto语句可以在快速跳出循环,避免重复退出还是那个有一定的帮助。Go语言中使用goto语句简化一些代码的实现过程。

跳出多层循环

package main

import "fmt"

func main(){
	// 跳出多层循环
	var flag = false
	for i := 0; i < 10; i++ {
		for j := 'A'; j < 'Z'; j++ {
			if(j == 'B'){
				flag = true
				break
			}
			fmt.Printf("%v-%c",i,j)
		}
		if flag {
			break
		}
	}
}

goto 实现跳出多人循环
(这个代码尽量少用)

for i := 0; i < 10; i++ {
		for j := 'A'; j < 'Z'; j++ {
			if j == 'C'{
				goto xx
			}
			fmt.Printf("%v-%c\n",i,j)
		}
	}

	xx: // label 标签
	 fmt.Println("over")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值