GO总结二流程控制

一 选择 if-else

和c++没什么区别,主要注意’{’ 不能单独一行

package main

import "fmt"//导入包必须使用,否则编译报错

func main() {//g语言中的 ‘{’ 不能独占一行	
	var a int = 1;
	if a== 1{
	
		fmt.Printf("条件为真\n")
	}
	
	if b := 10; b==10{//b是局部变量
	
		fmt.Printf("条件为真\n")
	}else{
	
		fmt.Printf("条件为假\n")
	}
	
	c := 10
	if c > 10{
	
		fmt.Printf("c > 10\n")
	} else if c < 10{
	
		fmt.Printf("c < 10\n")
	} else{
	
		fmt.Printf("c = 10\n")
	}
		
}

结果
在这里插入图片描述

二 选择 switch

package main

import "fmt"//导入包必须使用,否则编译报错

func main() {//g语言中的 ‘{’ 不能独占一行	
	num := 1
	switch num{
		case 1:
			fmt.Printf("num= 1\n")
			//默认执行完break  fallthrough不break
			//但是后面的条件将不会判断,无条件执行,是条件
		case 2:	
			fmt.Printf("num= 2\n")	
		case 3:
			fmt.Printf("num= 3\n")
		default:
			fmt.Printf("num> 3\n")
		
	}
	
	
	switch num2:=2 ;num2{//同if一样,支持一个初始化语句 num2 是局部变量
	case 1:
		fmt.Printf("num2= 1\n")
	case 2:	
		fmt.Printf("num2= 2\n")	
		fallthrough
	case 3:
		fmt.Printf("num2= 3\n")
	default:
		fmt.Printf("num2> 3\n")
		
	}
	
	//前一个num2 是局部变量,不影响这个
	num2 := 1
	//switch 可以没有条件,case再写
	switch{
	case num2==1:
		fmt.Printf("num2= 1\n")
	case num2==2:	
		fmt.Printf("num2= 2\n")	
		fallthrough
	case num2==3:
		fmt.Printf("num2= 3\n")
	default:
		fmt.Printf("num2> 3\n")
	
	}
			
}

结果
在这里插入图片描述

三 循环for

package main

import "fmt"//导入包必须使用,否则编译报错

func main() {//g语言中的 ‘{’ 不能独占一行	
	//普通的
	for i := 0 ;i< 3; i++{		
			fmt.Printf("i=%d\n",i)
	}

	i:=0
	for{//死循环
		if(i > 5){
			break
		}
		i++
		fmt.Printf("i=%d\n",i)
	}
			
}

结果
在这里插入图片描述

四 循环 for range

package main

import "fmt"//导入包必须使用,否则编译报错

func main() {//g语言中的 ‘{’ 不能独占一行	

	str := "abcd"
	for i,data:= range str{
		
		fmt.Printf("str[%d]=%c\n",i,data)
	}
}

结果
在这里插入图片描述

五 Emmm

没有 while,do while
还有个goto 不建议用啊

猜你喜欢

转载自blog.csdn.net/GreedySnaker/article/details/114443198
今日推荐