深入解析Go语言中for循环的写法

 更新时间:2015年10月29日 17:51:05   投稿:goldensun  
这篇文章主要介绍了Go语言中for循环的写法,是Golang入门学习中的基础知识,需要的朋友可以参考下

for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环。

语法
for循环在Go编程语言中的语法是:

复制代码 代码如下:

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


下面是控制在一个流程的for循环:

如果condition是可用的,那么对于循环只要条件为真时执行。

如果for子句是( init; condition; increment ) 存在则

初始化(init)步骤首先被执行,并且只有一次。这一步可以声明和初始化任何循环控制变量。不需要把一个声明在这里,只要有一个分号出现。

接着,条件(condition)进行了评估计算。如果为true,则执行循环体。如果是假的,循环体不执行,只是之后的for循环流量控制跳转到下一条语句。

for循环执行主体之后,控制流跳转回到增量(increment)语句。此语句可以让你更新任何循环控制变量。这个语句可以留空,只要一个分号出现条件后。

condition现在重新评估计算。如果为true,循环执行的过程中重复(循环体,然后增加步,然后再次条件)。之后如果条件为假,则循环终止。

 

如果range可用,然后循环执行的范围内的每个项目。

流程图:

20151029174636303.jpg (359×504)

例子:

复制代码 代码如下:

package main

import "fmt"

func main() {
  
   var b int = 15
   var a int

   numbers := [6]int{1, 2, 3, 5}

   /* for loop execution */
   for a := 0; a < 10; a++ {
      fmt.Printf("value of a: %d\n", a)
   }

   for a < b {
      a++
      fmt.Printf("value of a: %d\n", a)
      }

   for i,x:= range numbers {
      fmt.Printf("value of x = %d at %d\n", x,i)
   }  
}


让我们编译和运行上面的程序,这将产生以下结果:

value of a: 0
value of a: 1
value of a: 2
value of a: 3
value of a: 4
value of a: 5
value of a: 6
value of a: 7
value of a: 8
value of a: 9
value of a: 1
value of a: 2
value of a: 3
value of a: 4
value of a: 5
value of a: 6
value of a: 7
value of a: 8
value of a: 9
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of x = 1 at 0
value of x = 2 at 1
value of x = 3 at 2
value of x = 5 at 3
value of x = 0 at 4
value of x = 0 at 5

Go语言嵌套for循环
Go编程语言允许使用一个循环内嵌套另一个循环。下面的内容展示几个例子来说明这个概念。

语法
在Go语言中嵌套for循环语句的语法如下:

复制代码 代码如下:

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


例子:
下面的程序使用嵌套for循环从2至100找出的素数:

复制代码 代码如下:

package main

import "fmt"

func main() {
   /* local variable definition */
   var i, j int

   for i=2; i < 100; i++ {
      for j=2; j <= (i/j); j++ {
         if(i%j==0) {
            break; // if factor found, not prime
         }
      }
      if(j > (i/j)) {
         fmt.Printf("%d is prime\n", i);
      }
   } 
}


当上述代码被编译和执行时,它产生了以下结果:

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime

相关文章

  • Golang等多种语言转数组成字符串举例详解

    Golang等多种语言转数组成字符串举例详解

    今天写代码遇到数组转换成字符串操作,下面这篇文章主要给大家介绍了关于Golang等多种语言转数组成字符串的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 深入解析Golang中JSON的编码与解码

    深入解析Golang中JSON的编码与解码

    随着互联网的快速发展和数据交换的广泛应用,各种数据格式的处理成为软件开发中的关键问题,本文将介绍 Golang 中 JSON 编码与解码的相关知识,帮助大家了解其基本原理和高效应用,需要的可以收藏一下
    2023-05-05
  • Go语言fsnotify接口实现监测文件修改

    Go语言fsnotify接口实现监测文件修改

    这篇文章主要为大家介绍了Go语言fsnotify接口实现监测文件修改的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • go mod详细使用教程

    go mod详细使用教程

    go mod是go的一个模块管理工具,用来代替传统的GOPATH方案,下面这篇文章主要给大家介绍了关于go mod详细使用的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • golang判断key是否在map中的代码

    golang判断key是否在map中的代码

    这篇文章主要介绍了golang判断key是否在map中的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 解决Golang中goroutine执行速度的问题

    解决Golang中goroutine执行速度的问题

    这篇文章主要介绍了解决Golang中goroutine执行速度的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • Go语言map元素的删除和清空

    Go语言map元素的删除和清空

    本文主要介绍了Go语言map元素的删除和清空,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Golang利用Template模板动态生成文本

    Golang利用Template模板动态生成文本

    Go语言中的Go Template是一种用于生成文本输出的简单而强大的模板引擎,它提供了一种灵活的方式来生成各种格式的文本,下面我们就来看看具体如何使用Template实现动态文本生成吧
    2023-09-09
  • Go语言原子操作atomic的使用

    Go语言原子操作atomic的使用

    本文介绍了Go语言原子操作的使用方法,原子操作是一种无锁的技术,可通过CPU指令实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • Go语言中goroutine和WaitGroup的使用示例详解

    Go语言中goroutine和WaitGroup的使用示例详解

    goroutine 是Go中一个轻量级的线程, 只需要一个go关键字就可以创建一个goroutine,这篇文章主要介绍了Go语言中goroutine和WaitGroup的使用,需要的朋友可以参考下
    2023-03-03

最新评论