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

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可用,然后循环执行的范围内的每个项目。

流程图:

例子:

代码如下:

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
(0)

相关推荐

  • 深入剖析Go语言编程中switch语句的使用

    switch语句可以让一个变量对反对值的列表平等进行测试.每个值被称为一个的情况(case),变量被接通检查每个开关盒(switch case). 在Go编程,switch有两种类型. 表达式Switch - 在表达式switch,case包含相比较,switch表达式的值. 类型Switch - 在这类型switch,此时含有进行比较特殊注明开关表达式的类型. 表达式Switch 在Go编程语言中表达switch语句的语法如下: 复制代码 代码如下: switch(boolean-expres

  • Go语言中函数的参数传递与调用的基本方法

    按值传递函数参数,是拷贝参数的实际值到函数的形式参数的方法调用.在这种情况下,参数在函数内变化对参数不会有影响. 默认情况下,Go编程语言使用调用通过值的方法来传递参数.在一般情况下,这意味着,在函数内码不能改变用来调用所述函数的参数.考虑函数swap()的定义如下. 复制代码 代码如下: /* function definition to swap the values */ func swap(int x, int y) int {    var temp int temp = x /* s

  • 简介Go语言中的select语句的用法

    在Go编程语言中的select语句的语法如下: 复制代码 代码如下: select {     case communication clause  :        statement(s);          case communication clause  :        statement(s);     /* you can have any number of case statements */     default : /* Optional */        stat

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

    for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环. 语法 for循环在Go编程语言中的语法是: 复制代码 代码如下: for [condition |  ( init; condition; increment ) | Range] {    statement(s); } 下面是控制在一个流程的for循环: 如果condition是可用的,那么对于循环只要条件为真时执行. 如果for子句是( init; condition; increment ) 存在则 初始化(init

  • golang语言中for循环语句用法实例

    本文实例讲述了golang语言中for循环语句用法.分享给大家供大家参考.具体分析如下: for循环是用来遍历数组或数字的.用for循环遍历字符串时,也有 byte 和 rune 两种方式.第一种为byte,第二种rune. 复制代码 代码如下: package main import ( "fmt" ) func main() { s := "abc汉字" for i := 0; i < len(s); i++ { fmt.Printf("%c,&

  • C语言中for循环问题(一个小坑需注意)

    今天分享一下C语言中的for循环中我们常常忽略的小问题. 举一个小例子来说明,大家也可以自己先算一下哦 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { int a=0; int b=0; for(a=0,b=0;b=0;a++,b++) b++; return 0; } 这是一道面试题,问程序运行几次呢?运行结果如何? 其实这个小题关键是我们有没有被上图所示的b=

  • 详解Go语言中for循环,break和continue的使用

    目录 基本语法 有始有终的条件循环 带条件的循环 无限循环 数组循环 使用计数器循环 利用range循环 Map循环 string的遍历 Break和Continue 基本语法 和C语言同源的语法格式,有始有终的循环,for init; condition; post { } 带条件的while循环,for condition { } 无限循环,for { } 有始有终的条件循环 sum := 0 for i := 0; i < 10; i++ { sum = sum + i } 注意:i变量在

  • R语言中for循环的并行处理方式

    前言 本文用于记录笔者在将R语言中的for语句并行化处理中的一些问题. 实验 这里使用foreach和doParallel包提供的函数实现for语句的并行处理. for语句脚本 func <- function(x, y, z) { return(x^y/z) } # >>> main <<< x <- 2 y <- 3 z <- 1:100000 start <- (proc.time())[3][[1]] a <- 0 for (

  • 深入解析C语言中typedef的四个用途

    用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, 和一个字符变量:以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *pa, *pb; 也可行,但相对来说没有用typedef的形式直观,尤其在需要大量指针的地方,typedef的方式更省事. 用途二:用在旧

  • 快速学习C语言中for循环语句的基本使用方法

    对于某个特定任务我们可以采用多种方法来编写程序.下面这段代码也可以实现前面的温度转换程序的功能:#include <stdio.h> /*打印华氏温度-摄氏温度对照表*/ main() { int fahr; for (fahr = 0; fahr <= 300; fahr = fahr + 20) printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32)); } 温度的下限.上限和步长都是常量, printf 函数的第三个参数必

  • 解析c语言中"函数调用中缺少哨兵"的情况分析

    在写一个练习时候出现的.觉得奇怪,因为翻译说缺少哨兵??什么意思呢...===================================== 复制代码 代码如下: /*//练习如下,创建一个进程*/#include <unistd.h>#include <stdio.h>#include <stdlib.h> int main(void){   printf("Running ps with execlp\n");   execlp("

  • C语言中getchar的用法以及实例解析

    目录 getchar解析 一.getchar的返回类型及作用机制 二.根据一段代码初步了解 三.实例(“输入密码”)进一步了解 1.代码达不到理想效果 2.输入的密码中有空格 总结 getchar解析 一.getchar的返回类型及作用机制 getchar——读取字符的函数 int getchar(void) 返回类型为int,参数为void. 有人可能会有疑惑,getchar既然是读取字符的,为什么返回类型是int呢? 1.getchar其实返回的是字符的ASCII码值(整数). 2.getc

  • C语言中getchar()的原理以及易错点解析

    目录 一.getchar()系列 1.getchar()工作原理及作用 2.使用getchar()清理回车\n 3.使用getchar()清理缓存 4.混合scanf()与getchar() 总结 一.getchar()系列 1.getchar()工作原理及作用 工作原理:getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次getchar()时,确实需要人工的输入,但是如果你输了多个字符,以后的

随机推荐