• GO语言学习(十一)Go 语言循环语句


    Go 语言提供了以下几种类型循环处理语句:

    循环类型描述
    for 循环 重复执行语句块
    循环嵌套 在 for 循环中嵌套一个或多个 for 循环

    语法

    Go语言的For循环有3中形式,只有其中的一种使用分号。

    和 C 语言的 for 一样:

    for init; condition; post { }
    

    和 C 的 while 一样:

    for condition { }
    

    和 C 的 for(;;) 一样:

    for { }
    
    • init: 一般为赋值表达式,给控制变量赋初值;
    • condition: 关系表达式或逻辑表达式,循环控制条件;
    • post: 一般为赋值表达式,给控制变量增量或减量。

    for语句执行过程如下:

    • ①先对表达式1赋初值;
    • ②判别赋值表达式 init 是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition;否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句。

    for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:

    for key, value := range oldMap {
        newMap[key] = value
    }
    

    实例

    package main
    
    import "fmt"
    
    func main() {
    
       var b int = 15
       var a int
    
       numbers := [6]int{1, 2, 3, 5} 
    
       /* for 循环 */
       for a := 0; a < 10; a++ {
          fmt.Printf("a 的值为: %d
    ", a)
       }
    
       for a < b {
          a++
          fmt.Printf("a 的值为: %d
    ", a)
       }
    
       for i,x:= range numbers {
          fmt.Printf("第 %d 位 x 的值 = %d
    ", i,x)
       }   
    }
    

    以下为 Go 语言嵌套循环的格式:

    for [condition |  ( init; condition; increment ) | Range]
    {
       for [condition |  ( init; condition; increment ) | Range]
       {
          statement(s);
       }
       statement(s);
    }
    

    实例

    以下实例使用循环嵌套来输出 2 到 100 间的素数:

    package main
    
    import "fmt"
    
    func main() {
       /* 定义局部变量 */
       var i, j int
    
       for i=2; i < 100; i++ {
          for j=2; j <= (i/j); j++ {
             if(i%j==0) {
                break; // 如果发现因子,则不是素数
             }
          }
          if(j > (i/j)) {
             fmt.Printf("%d  是素数
    ", i);
          }
       }  
    }
    

    循环控制语句

    循环控制语句可以控制循环体内语句的执行过程。

    GO 语言支持以下几种循环控制语句:

    控制语句描述
    break 语句 经常用于中断当前 for 循环或跳出 switch 语句
    continue 语句 跳过当前循环的剩余语句,然后继续进行下一轮循环。
    goto 语句 将控制转移到被标记的语句。

    语法

    break 语法格式如下:

    package main
    
    import "fmt"
    
    func main() {
       /* 定义局部变量 */
       var a int = 10
    
       /* for 循环 */
       for a < 20 {
          fmt.Printf("a 的值为 : %d
    ", a);
          a++;
          if a > 15 {
             /* 使用 break 语句跳出循环 */
             break;
          }
       }
    }
    

    continue 语法格式如下:

    package main
    
    import "fmt"
    
    func main() {
       /* 定义局部变量 */
       var a int = 10
    
       /* for 循环 */
       for a < 20 {
          if a == 15 {
             /* 跳过此次循环 */
             a = a + 1;
             continue;
          }
          fmt.Printf("a 的值为 : %d
    ", a);
          a++;     
       }  
    }
    

    goto 语法格式如下:

    package main
    
    import "fmt"
    
    func main() {
       /* 定义局部变量 */
       var a int = 10
    
       /* 循环 */
       LOOP: for a < 20 {
          if a == 15 {
             /* 跳过迭代 */
             a = a + 1
             goto LOOP
          }
          fmt.Printf("a的值为 : %d
    ", a)
          a++     
       }  
    }
    

      

    无限循环

    如过循环中条件语句永远不为 false 则会进行无限循环,我们可以通过 for 循环语句中只设置一个条件表达式来执行无限循环:

    package main
    
    import "fmt"
    
    func main() {
        for true  {
            fmt.Printf("这是无限循环。
    ");
        }
    }
    

      

  • 相关阅读:
    齐文词根词缀---3.12、ced-走
    感悟总结---2104012起(文字收集)
    齐文词根词缀---3.11、log说话
    齐文词根词缀---3.10、cata-向下(和cat,cad,cid,cis是一样的)
    齐文词根词缀---3.9、carn-肉、肉欲
    齐文词根词缀---3.8、capit-头(cap帽子)
    齐文词根词缀---3.7、-tect盖子
    齐文词根词缀---3.6、cant-唱、说
    齐文词根词缀---3.5、cad- / cas- 落下(【音变t-d-s】)
    CURL 发送POST请求
  • 原文地址:https://www.cnblogs.com/yuming1983/p/9733132.html
Copyright © 2020-2023  润新知