条件循环
if else(分支结构)
package main
import "fmt"
func main() {
// 1、if else
score := 65
if score > 90 { // 条件不成立(走else语句)
fmt.Println("高分")
} else {
fmt.Println("小于90") // 小于90
}
}
if 条件判断还有一种特殊的写法,可以在 if 表达式之前添加一个执行语句,再根据变量值进行判断
package main
import "fmt"
func main() {
//// 2、score写在if后面,这个score变量就只能在if代码块使用
if score := 65; score > 90 {
fmt.Println("高分")
} else {
fmt.Println(score)
fmt.Println("小于90") // 小于90
}
//fmt.Println(score) // score在if语句内定义,不能在外部引用
}
package main
import "fmt"
func main() {
// 3、if else if .... else
// if语句特点:从上向下匹配,成立就返回,而不会匹配后面的条件
score := 66
if score > 90 {
fmt.Println("优秀")
} else if score > 80 {
fmt.Println("良好")
} else if score > 70 {
fmt.Println("一般良好")
} else {
fmt.Println("一般")
}
}
for(循环结构)
1)普通for循环
package main
import "fmt"
func main() {
// 1、输出1到100
/*
i := 1 赋值语句
i <= 100 条件
i++ i = i + 1
*/
for i := 1; i <= 100; i++ {
fmt.Println(i)
}
}
2)外部定义 i
package main
import "fmt"
func main() {
// 2、将i定义到外部
i := 0
for i < 10 { // 容易出现死循环,一定要有结束的方法
fmt.Println(i)
i++ // i = i + 1 (不是从0开始打印,而是从 i = 0 + 1)
// i++在fmt上面打印 1~10
// i++在fmt下面打印 0~9
}
}
3)模拟while循环
Go 语言中是没有 while 语句的,我们可以通过 for 代替
package main
import "fmt"
func main() {
// 3、for模拟while循环 (while true)
k := 1
for {
if k <= 10 {
fmt.Println(k)
} else {
break
}
k++
}
}
4)for range
(键值循环)
package main
import "fmt"
func main() {
// 4、for range打印索引和值
s := "hello world"
for index, val := range s {
fmt.Println(index, val)
}
}
switch case
使用 switch 语句可方便地对大量的值进行条件判断
package main
import (
"fmt"
)
func main() {
// 解决我们有大量的 if else if ...
score := "Bxxx"
switch score {
case "A":
fmt.Println("得分为A基本")
case "B":
fmt.Println("得分为B等级")
case "C":
fmt.Println("得分为C")
default: // 当上面的所有条件全不成立,会执行default
fmt.Println("得分为default")
}
}
break
、continue
break
跳出循环
continue
跳出本次循环
1、break
跳出单循环
package main
import "fmt"
func main() {
// break: 跳出当前循环(循环结束)
// continue: 结束当前这一次循环,进行下一次循环
for i := 1; i < 10; i++ {
if i == 5 {
break // 直接跳出了for循环
}
fmt.Println(i)
}
}
continue
(继续下次循环)
package main
import "fmt"
func main() {
// break: 跳出当前循环(循环结束)
// continue: 结束当前这一次循环,进行下一次循环
for i := 1; i < 10; i++ {
if i == 5 {
//break // 直接跳出了for循环
continue
}
fmt.Println(i)
}
}