与其他主要编程语⾔的差异:
Go 语⾔仅⽀持循环关键字 for,而且代码更简洁性和灵活性。
一般的 for 循环结构如下:
for 初始化; 条件; 后续操作 {
// 循环体
}
Go语言在循环体中可以省略掉初始化和后续操作的部分:
for 条件 {
// 循环体
}
代码示例:
//while 条件循环
//while (n<5)
n := 0
for n < 5 {
n++
fmt.Println(n)
}
//
//⽆限循环
//while (true)
n := 0
for {
//…
}
而且,Go 语言的 for 循环还可以在循环体内修改条件变量,这可以实现一些其他语言无法轻易实现的功能。例如,下面的代码用 Go 语言写出来非常简单:
//计算 1 到 10(包括 10)之间所有奇数的和。
sum := 0
for i := 0; i < 10; i++ {
if i % 2 == 0 {
continue
}
sum += i
}
与其他主要编程语⾔的差异
if var declaration; condition {
// code to be executed if condition is true
}
//
if x := 5; x > 0 {
// code to be executed if x is greater than 0
}
与其他主要编程语⾔的差异
//差异1,代码示例
value := 5
switch value % 2 == 0 {
case true:
fmt.Println("Even")
case false:
fmt.Println("Odd")
}
//差异2,代码示例
switch num {
case 1, 3, 5:
fmt.Println("Odd")
case 2, 4, 6:
fmt.Println("Even")
}
//差异3,代码示例
switch (num) {
case 1:
//break 可以不用break
case 2:
//break
default:
//
}
//差异4,代码示例
switch {
case 0 <= Num && Num <= 3: //case表达式
fmt.Printf("0-3")
case 4 <= Num && Num <= 6:
fmt.Printf("4-6")
case 7 <= Num && Num <= 9:
fmt.Printf("7-9")
}
通过已上知识,已经对Go语言的for、if、switch有些了解,现在通过包含for、if、switch的代码段来强化下记忆:
package main
import "fmt"
// 判断一个数是否为素数
func isPrime(num int) bool {
if num <= 1 {
return false
}
for i := 2; i*i <= num; i++ {
if num%i == 0 {
return false
}
}
return true
}
func main() {
// 声明变量
var num int
var result string
// 获取用户输入
fmt.Print("请输入一个正整数:")
fmt.Scanln(&num)
// 判断输入的数字是否为素数
if isPrime(num) {
result = "素数"
} else {
result = "非素数"
}
// 根据结果输出不同的信息
switch result {
case "素数":
fmt.Printf("%d是%s。\n", num, result)
case "非素数":
fmt.Printf("%d是%s。\n", num, result)
default:
fmt.Println("未知结果")
}
}
首先使用条件语句if判断输入的数字是否为素数,并将结果存储在变量result中。
然后,使用switch语句根据变量result的值输出不同的信息。
在switch语句中,每个case分支对应一个可能的值,执行相应的输出。
如果没有匹配的case分支,可以使用default分支来处理未知结果。
学习Go语言主要是多练,多找些代码段写写,不懂可以私聊咨询。