Administrator
发布于 2024-01-08 / 37 阅读 / 0 评论 / 0 点赞

Golang学习笔记3——条件语句、循环语句

Golang学习笔记3——条件语句、循环语句

条件语句

if 布尔表达式 {
   /* 在布尔表达式为 true 时执行 */
}else{	// else必须与大括号在一行
   /* 在布尔表达式为 false 时执行 */
}

Go语言中,if语句表达式前可以加一条执行语句,例如:

if err := Connect(); err != nil {
    fmt.Println(err)
    return
}

Swith语句

switch语句基于不同条件执行不同语句,基本语法如下:

	switch marks {
	case 90:
		grade = "A"
	case 80:
		grade = "B"
	case 50, 60, 70:
		grade = "C"
	default:
		grade = "D"
	}

程序从上至下,依次进行测试,直到找到匹配项,执行响应语句,并不再对后面的case进行匹配。

如果需要执行后一个case,可以使用fallthrough。

如果没有匹配项,则执行default后的语句。

swith语句中,var1、val1、val2的类型必须一致。

如果switch后不加变量,则每个case后的表达式的值必须为bool类型,例如:

	switch {
	case grade == "A":
		fmt.Printf("优秀!\n")
	case grade == "B", grade == "C":
		fmt.Printf("良好\n")
	case grade == "D":
		fmt.Printf("及格\n")
	case grade == "F":
		fmt.Printf("不及格\n")
	default:
		fmt.Printf("差\n")
	}

Selet语句

// TODO:暂未学到通道

循环语句

Go语言for循环有四种形式

  • 第一种:for init; condition; post { } 和C语言for循环一样

func main() {
   sum := 0
      for i := 0; i <= 10; i++ {
         sum += i
      }
   fmt.Println(sum)
}
  • 第二种:for condition { } 等价于C语言中的while

   for sum <= 10{
      sum += sum
   }
  • 第三种:for {} 等价于C语言中的 for(;;)

   for {
      sum++ // 无限循环下去
   }
  • 第四种:for xxx := range xxx{} 相当于python中的for xxx in xxx:,用来遍历slice、map、数组、字符串等。

func main() {
   strings := []string{"google", "runoob"}
   for i, s := range strings {
      fmt.Println(i, s)
   }


   numbers := [6]int{1, 2, 3, 5}
   for i,x:= range numbers {
      fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
   }  
}


评论