【原创】go语言学习(四)流程控制

目录:

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()
	}
}

  

posted @ 2019-10-23 13:32  shuyang  阅读(199)  评论(0编辑  收藏  举报