go语言学习(四)流程控制

空扰寡人 提交于 2019-12-02 02:25:58

目录:

1、if else语句块

2、for语句

3、switch语句

if else语句块

1、基本语法

if condition {      
  //do something
}if statement; condition {  }if condition {     //do something } else if condition {   //do something } else {    //do something }

 

2、练习一

 

// 奇偶数
func testIf1() {
	num := 10
	// var num int
	// num = 10
	if num%2 == 0 {
		fmt.Printf("num:%d is  even\n", num)
	} else {
		fmt.Printf("num:%d is odd\n")
	}
}

  

3、练习二

// if.. else if 可赋值
func testIf3() {
	// num := 10
	// var num int
	// num = 10

	// if语句块中定义num, num会在语句块中销毁
	if num := 11; num%2 == 0 {
		fmt.Printf("num %d is even\n", num)
	} else {
		fmt.Printf("num:%d is odd\n", num)
	}

	// 为空
	fmt.Printf("num=%d\n", num)
}

  

4、练习三

// 方法
func getNum() int {
	return 10
}

func testIf4() {
	// if语句块中定义num, num会在语句块中销毁
	if num := getNum(); num%2 == 0 {
		fmt.Printf("num %d is even\n", num)
	} else {
		fmt.Printf("num:%d is odd\n", num)
	}

	// 为空
	fmt.Printf("num=%d\n", num)
}

for语句

1、Go语⾔言中只有⼀一种循环 for

for initialisation; condition; post {
  
}

  

2、练习一

func testFor1() {

	// for块中定义,结束时i销毁
	//for i := 1; i <=10 ; i++ {
	//	fmt.Printf("i=%d\n",i)
	//}

	// 不销毁
	var i int
	for i = 1; i <= 10; i++ {
		fmt.Printf("i=%d\n", i)
	}

	fmt.Printf("final:i=%d\n", i)
}

  

3、练习二

// break 跳出循环 continue
func testFor2() {
	var i int
	for i = 1; i <= 10; i++ {
		if i > 5 {
			break
			// continue
		}
		fmt.Printf("i=%d\n", i)
	}

	fmt.Printf("final:i=%d\n", i)
}

  

4、练习三

// continue结束本次循环,跳到下次循环
func testFor3() {
	var i int
	for i = 1; i <= 10; i++ {
		if i%2 == 0 {
			continue
		}
		fmt.Printf("i=%d\n", i)
	}

	fmt.Printf("final:i=%d\n", i)
}
// 二种写法func testFor4() {   //var i int   //i = 1;   i := 1   for i <= 10 {      fmt.Printf("i=%d\n", i)      i = i + 2   }   fmt.Printf("final:i=%d\n", i)}// 三种写法func testFor5() {   //var i int   //i = 1;   i := 1   for i <= 10 {      fmt.Printf("i=%d\n", i)      i = i + 2   }   fmt.Printf("final:i=%d\n", i)}

  

5、练习四

// 多行赋值
func testMultiSign() {
	//var a int
	//var b string
	//var c int
	a, b, c := 10, "hello", 100

	fmt.Printf("a=%d b=%s c=%d\n", a, b, c)
}

// 多条件for
func testFor6() {
	for no, i := 10, 1; i < 10 && no <= 19; i, no = i+1, no+1 {
		fmt.Printf("%d * %d = %d", i, no, i*no)
	}
}

  

5、练习五

// 无限循环for
func testFor7() {
	for {
		fmt.Printf("hello\n")
	}
}

  

switch语句

1、case语句

func testIf() {
	var a int = 2
	if a == 1 {
		fmt.Printf("a=1\n")
	} else if a == 2 {
		fmt.Printf("a=2\n")
	} else if a == 3 {
		fmt.Printf("a=3\n")
	} else if a == 4 {
		fmt.Printf("a=4\n")
	} else {
		fmt.Printf("a=5\n")
	}
}
func testSwitch() {   var a int = 2   switch a {   case 1:      fmt.Printf("a=1\n")   case 2:      fmt.Printf("a=2\n")   case 3:      fmt.Printf("a=3\n")   case 4:      fmt.Printf("a=4\n")   case 5:      fmt.Printf("a=5\n")   default:      fmt.Printf("a=??\n")   }}

  

2、写法二

func getValue() int {
	return 6
}

// 写法二
func testSwitch2() {
	switch a := getValue(); a {
	case 1:
		fmt.Printf("a=1\n")
	case 2:
		fmt.Printf("a=2\n")
	case 3:
		fmt.Printf("a=3\n")
	case 4:
		fmt.Printf("a=4\n")
	case 5:
		fmt.Printf("a=5\n")
	default:
		fmt.Printf("a=??\n")
	}
}

  

3、练习一

func testSwitch3() {
	switch a := getValue(); a {
	case 1, 2, 3, 4, 5:
		fmt.Printf("a>=1 and a<=5\n")
	case 6, 7, 8, 9, 10:
		fmt.Printf("a>=6 and a<=10\n")
	default:
		fmt.Printf("a > 10\n")
	}
}

  

4、练习二

func testSwitch4() {
	var num = 60
	switch {
	case num >= 0 && num <= 25:
		fmt.Printf("a>=0 and a<=25\n")
	case num > 25 && num <= 50:
		fmt.Printf("a > 25 and a <=50\n")
	case num > 50 && num <= 75:
		fmt.Printf("a > 50 and a <= 75\n")
	case num > 75 && num <= 100:
		fmt.Printf("a > 75 and a <= 100\n")
	default:
		fmt.Printf("invalid a = %d \n", num)
	}
}

  

5、fallthrough 穿透case块,执行下一个case块

// fallthrough 穿透case块,执行下一个case块,执行代码
func testSwitch5() {
	var num = 60
	switch {
	case num >= 0 && num <= 25:
		fmt.Printf("a>=0 and a<=25\n")
	case num > 25 && num <= 50:
		fmt.Printf("a > 25 and a <=50\n")
	case num > 50 && num <= 75:
		fmt.Printf("a > 50 and a <= 75\n")
		fallthrough
	case num > 75 && num <= 100:
		fmt.Printf("a > 75 and a <= 100\n")
	default:
		fmt.Printf("invalid a = %d \n", num)
	}
}

  

6、打印99乘法表

// 打印 99乘法表
func testMulti() {
	//1*1=1
	//1*2=2 2*2=4
	//1*3=3 2*3=6 3*3=9

	for i := 1; i < 10; i++ {
		for j := 1; j <= i; j++ {
			fmt.Printf("%d * %d = %d", j, i, j*i)
		}
		fmt.Println()
	}
}

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!