栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

(七)循环语句for

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(七)循环语句for

(七)循环语句for
  • 1 for关键字
    • 1.1 标准写法
    • 1.2 与C语言while类似
    • 1.3 无限循环
    • 1.4 跳出循环的语句
    • 1.5 复合类型使用for-each range循环

1 for关键字 1.1 标准写法

和 C 语言的 for 一样:

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

实例:计算 1 到 10 的数字之和:

package main

import "fmt"

func main() {
        sum := 0
        for i := 0; i <= 10; i++ {
                sum += i
        }
        fmt.Println(sum)
}
1.2 与C语言while类似

和 C 的 while 一样:

for condition { }

实例:在 sum 小于 10 的时候计算 sum 自相加后的值

package main

import "fmt"

func main() {
        sum := 1

        // 这样写也可以,更像 While 语句形式
        for sum <= 10{
                sum ++
        }
        fmt.Println(sum)
}
1.3 无限循环

和 C 的 for(; 一样:

for { }

实例:无限循环

package main

import "fmt"

func main() {
        sum := 0
        for {
            sum++ // 无限循环下去
        }
        fmt.Println(sum) // 无法输出
}
1.4 跳出循环的语句
  • break:跳出循环体。
  • continue:跳出一次循环。
1.5 复合类型使用for-each range循环

For-each range 循环

这种格式的循环可以对字符串、数组、切片等进行迭代输出元素。

package main
import "fmt"

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 的值 = %dn", i,x)
        }  
}

以上实例运行输出结果为::

0 google
1 runoob
第 0 位 x 的值 = 1
第 1 位 x 的值 = 2
第 2 位 x 的值 = 3
第 3 位 x 的值 = 5
第 4 位 x 的值 = 0
第 5 位 x 的值 = 0

for 循环的 range 格式可以省略 key 和 value,如下实例:

package main
import "fmt"

func main() {
    map1 := make(map[int]float32)
    map1[1] = 1.0
    map1[2] = 2.0
    map1[3] = 3.0
    map1[4] = 4.0
   
    // 读取 key 和 value
    for key, value := range map1 {
      fmt.Printf("key is: %d - value is: %fn", key, value)
    }

    // 读取 key
    for key := range map1 {
      fmt.Printf("key is: %dn", key)
    }

    // 读取 value
    for _, value := range map1 {
      fmt.Printf("value is: %fn", value)
    }
}

以上实例运行输出结果为:

key is: 4 - value is: 4.000000
key is: 1 - value is: 1.000000
key is: 2 - value is: 2.000000
key is: 3 - value is: 3.000000
key is: 1
key is: 2
key is: 3
key is: 4
value is: 1.000000
value is: 2.000000
value is: 3.000000
value is: 4.000000
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/953655.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号