Go语言入门(条件语句和循环语句)
- 目录
- 四、条件语句和循环语句
- 1. 条件语句
- 1.1 if 语句
- 1.2 if-else 语句
- 1.3 if-else if-else 语句
- 1.4 带初始化语句的 if
- 1.5 switch 语句
- 1.6 带条件的 switch
- 1.7 多个条件的 case
- 2. 循环语句
- 2.1 基本 for 循环
- 2.2 省略初始化语句和后置语句的 for 循环
- 2.3 无限循环
- 2.4 使用 range 的 for 循环
- 3. 控制语句
- 3.1 break 语句
- 3.2 continue 语句
- 3.3 goto 语句
目录
Go 语言(Golang)是一种静态类型、编译型语言,由 Google 开发,专注于简洁性、并发和高效性。
下面是 Go 语言的基础语法讲解和代码示例。
上一篇:三、Go语言入门(运算符)
四、条件语句和循环语句
Go 语言中,条件语句和循环语句是控制程序流的基本结构。通过这些语句,可以实现不同的逻辑分支和重复操作。下面详细讲解 Go 语言中的条件语句和循环语句,并提供代码示例。
1. 条件语句
1.1 if 语句
if 语句用于条件判断。基本语法如下:
if condition {// 当 condition 为 true 时执行
}
package mainimport "fmt"func main() {age := 20if age >= 18 {fmt.Println("You are an adult.")}
}
1.2 if-else 语句
if-else 语句用于在条件为 false 时执行另一个分支。
package mainimport "fmt"func main() {age := 16if age >= 18 {fmt.Println("You are an adult.")} else {fmt.Println("You are a minor.")}
}
1.3 if-else if-else 语句
if-else if-else 语句用于多个条件判断。
package mainimport "fmt"func main() {score := 85if score >= 90 {fmt.Println("Grade: A")} else if score >= 80 {fmt.Println("Grade: B")} else if score >= 70 {fmt.Println("Grade: C")} else if score >= 60 {fmt.Println("Grade: D")} else {fmt.Println("Grade: F")}
}
1.4 带初始化语句的 if
if 语句支持在条件判断之前执行一个简单的语句。这个语句的作用域仅限于 if 语句块。
package mainimport "fmt"func main() {if x := 10; x > 5 {fmt.Println("x is greater than 5")}// fmt.Println(x) // 这里不能访问 x,因其作用域仅限于 if 语句块
}
1.5 switch 语句
switch 语句用于简化多个条件判断。每个 case 分支会自动终止,除非使用 fallthrough 关键字。
package mainimport "fmt"func main() {day := 3switch day {case 1:fmt.Println("Monday")case 2:fmt.Println("Tuesday")case 3:fmt.Println("Wednesday")case 4:fmt.Println("Thursday")case 5:fmt.Println("Friday")default:fmt.Println("Weekend")}
}
1.6 带条件的 switch
switch 语句可以不带表达式,这时每个 case 都是一个独立的条件判断。
package mainimport "fmt"func main() {num := -10switch {case num < 0:fmt.Println("Number is negative")case num == 0:fmt.Println("Number is zero")case num > 0:fmt.Println("Number is positive")}
}
1.7 多个条件的 case
一个 case 分支可以包含多个条件,用逗号分隔。
package mainimport "fmt"func main() {char := 'a'switch char {case 'a', 'e', 'i', 'o', 'u':fmt.Println("Vowel")default:fmt.Println("Consonant")}
}
2. 循环语句
for 是 Go 唯一的循环语句,可以实现各种循环结构。
2.1 基本 for 循环
for 循环包括初始化语句、条件表达式和后置语句。
package mainimport "fmt"func main() {for i := 0; i < 5; i++ {fmt.Println(i)}
}
2.2 省略初始化语句和后置语句的 for 循环
可以省略 for 循环的初始化语句和后置语句。
package mainimport "fmt"func main() {i := 0for i < 5 {fmt.Println(i)i++}
}
2.3 无限循环
省略条件表达式,可以创建一个无限循环。
package mainimport "fmt"func main() {i := 0for {fmt.Println(i)i++if i >= 5 {break}}
}
2.4 使用 range 的 for 循环
range 关键字可以用来迭代数组、切片、字符串、映射和通道。
package mainimport "fmt"func main() {// 迭代数组arr := [5]int{1, 2, 3, 4, 5}for index, value := range arr {fmt.Println("Index:", index, "Value:", value)}// 迭代字符串str := "hello"for index, char := range str {fmt.Println("Index:", index, "Char:", char)}// 迭代映射m := map[string]int{"a": 1, "b": 2}for key, value := range m {fmt.Println("Key:", key, "Value:", value)}
}
3. 控制语句
break 和 continue 用于控制循环的执行。
3.1 break 语句
break 用于终止循环。
package mainimport "fmt"func main() {for i := 0; i < 10; i++ {if i == 5 {break}fmt.Println(i)}
}
3.2 continue 语句
continue 用于跳过当前迭代,继续下一次迭代。
package mainimport "fmt"func main() {for i := 0; i < 10; i++ {if i%2 == 0 {continue}fmt.Println(i)}
}
3.3 goto 语句
Go 语言还支持 goto 语句用于无条件跳转,尽量避免使用 goto,以保持代码的可读性和可维护性。
package mainimport "fmt"func main() {i := 0
Loop:fmt.Println(i)i++if i < 5 {goto Loop}
}
通过理解条件语句和循环语句,可以编写逻辑复杂且结构清晰的 Go 语言程序。这些控制结构是编程中不可或缺的部分,掌握它们将极大提升你的编程能力。
下一篇:五、Go语言入门(数组、切片和指针)