编写结构化程序for、if、switch - Go语言从入门到实战
for 循环
与其他主要编程语⾔的差异:
 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 条件
与其他主要编程语⾔的差异
- condition 表达式结果必须为布尔值,如:x > 0
- ⽀持变量声明和赋值declaration,如:x := 5;
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  
}switch 条件
与其他主要编程语⾔的差异
- 条件表达式不限制为常量或者整数,可以使用变量、表达式甚至函数调用作为条件;
- 单个 case 中,可以出现多个结果选项, 使⽤逗号分隔;
- 与 C 语⾔等语言规则相反,Go 语⾔不需要⽤break来明确退出⼀个 case,当一个 case 的条件满足时,控制流会自动转到该 case 代码块中的代码;
- 可以不设定 switch 之后的case条件表达式,在此种情况下,整个 switch 结
 构与多个 if…else… 的逻辑作⽤等同。
//差异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语言主要是多练,多找些代码段写写,不懂可以私聊咨询。
欢迎关注云尔Websites CSDN博客
欢迎进入Golang交流社区