【JKSJ49-5】条件和循环

68 阅读1分钟

循环

1.只支持for

代码如下所示:

func TestWhileLoop(t *testing.T) {
   n := 0
   for n < 5 {
      t.Log(n)
      n++
   }
}

条件

1.condition条件必须为布尔值
2.支持变量赋值

代码如下所示:

func TestIfMultiSec(t *testing.T) {
   if a := 1 == 1; a {
      t.Log("1==1")
   }
}

switch

1.条件表达式不限制为常量或整数
2.单个case中,可以出现多个结果选项,用逗号分隔
3.不需要用break来明确退出一个case
4.可以不设定switch之后的条件表达式,在这种情况下,整个switch结构和多个if...else...的逻辑作用等同

代码如下所示:

func TestSwitchMultiSec(t *testing.T) {
   for i := 0; i < 5; i++ {
      switch i {
      case 0, 2:
         t.Log("even")
      case 1, 3:
         t.Log("odd")
      default:
         t.Log("other")
      }
   }
}

func TestSwitchCaseCondition(t *testing.T) {
   for i := 0; i < 5; i++ {
      switch {
      case i%2 == 0:
         t.Log("even")
      case i%2 == 1:
         t.Log("odd")
      default:
         t.Log("other")

      }
   }
}