目录:
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 ", num) } else { fmt.Printf("num:%d is odd ") } }
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 ", num) } else { fmt.Printf("num:%d is odd ", num) } // 为空 fmt.Printf("num=%d ", num) }
4、练习三
// 方法 func getNum() int { return 10 } func testIf4() { // if语句块中定义num, num会在语句块中销毁 if num := getNum(); num%2 == 0 { fmt.Printf("num %d is even ", num) } else { fmt.Printf("num:%d is odd ", num) } // 为空 fmt.Printf("num=%d ", num) }
for语句
1、Go语⾔言中只有⼀一种循环 for
for initialisation; condition; post { }
2、练习一
func testFor1() { // for块中定义,结束时i销毁 //for i := 1; i <=10 ; i++ { // fmt.Printf("i=%d ",i) //} // 不销毁 var i int for i = 1; i <= 10; i++ { fmt.Printf("i=%d ", i) } fmt.Printf("final:i=%d ", i) }
3、练习二
// break 跳出循环 continue func testFor2() { var i int for i = 1; i <= 10; i++ { if i > 5 { break // continue } fmt.Printf("i=%d ", i) } fmt.Printf("final:i=%d ", i) }
4、练习三
// continue结束本次循环,跳到下次循环 func testFor3() { var i int for i = 1; i <= 10; i++ { if i%2 == 0 { continue } fmt.Printf("i=%d ", i) } fmt.Printf("final:i=%d ", i) }
// 二种写法
func testFor4() {
//var i int
//i = 1;
i := 1
for i <= 10 {
fmt.Printf("i=%d ", i)
i = i + 2
}
fmt.Printf("final:i=%d ", i)
}
// 三种写法
func testFor5() {
//var i int
//i = 1;
i := 1
for i <= 10 {
fmt.Printf("i=%d ", i)
i = i + 2
}
fmt.Printf("final:i=%d ", 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 ", 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 ") } }
switch语句
1、case语句
func testIf() { var a int = 2 if a == 1 { fmt.Printf("a=1 ") } else if a == 2 { fmt.Printf("a=2 ") } else if a == 3 { fmt.Printf("a=3 ") } else if a == 4 { fmt.Printf("a=4 ") } else { fmt.Printf("a=5 ") } }
func testSwitch() {
var a int = 2
switch a {
case 1:
fmt.Printf("a=1 ")
case 2:
fmt.Printf("a=2 ")
case 3:
fmt.Printf("a=3 ")
case 4:
fmt.Printf("a=4 ")
case 5:
fmt.Printf("a=5 ")
default:
fmt.Printf("a=?? ")
}
}
2、写法二
func getValue() int { return 6 } // 写法二 func testSwitch2() { switch a := getValue(); a { case 1: fmt.Printf("a=1 ") case 2: fmt.Printf("a=2 ") case 3: fmt.Printf("a=3 ") case 4: fmt.Printf("a=4 ") case 5: fmt.Printf("a=5 ") default: fmt.Printf("a=?? ") } }
3、练习一
func testSwitch3() { switch a := getValue(); a { case 1, 2, 3, 4, 5: fmt.Printf("a>=1 and a<=5 ") case 6, 7, 8, 9, 10: fmt.Printf("a>=6 and a<=10 ") default: fmt.Printf("a > 10 ") } }
4、练习二
func testSwitch4() { var num = 60 switch { case num >= 0 && num <= 25: fmt.Printf("a>=0 and a<=25 ") case num > 25 && num <= 50: fmt.Printf("a > 25 and a <=50 ") case num > 50 && num <= 75: fmt.Printf("a > 50 and a <= 75 ") case num > 75 && num <= 100: fmt.Printf("a > 75 and a <= 100 ") default: fmt.Printf("invalid a = %d ", 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 ") case num > 25 && num <= 50: fmt.Printf("a > 25 and a <=50 ") case num > 50 && num <= 75: fmt.Printf("a > 50 and a <= 75 ") fallthrough case num > 75 && num <= 100: fmt.Printf("a > 75 and a <= 100 ") default: fmt.Printf("invalid a = %d ", 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() } }