Golang学习笔记 - 08 :循环语句

本文是Golang学习笔记的一部分,详细介绍了for循环的三种形式,包括与C语言相似的用法。同时讲解了break用于跳出循环、continue跳过当前循环继续执行、以及goto进行无条件代码转移的功能。最后提到了如何创建无限循环/死循环,并给出了相关实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

for

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

  • 和 C 语言的 for 一样:
    for init; condition; post { }
  • 和 C 的 while 一样:
    for condition { }
  • 和 C 的 for(;;) 一样:
    for { }

init一般为赋值表达式,给控制变量赋初值
condition关系表达式或逻辑表达式,循环控制条件
post一般为赋值表达式,给控制变量增量或减量。
实例

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\n", a)
	}

	for a < b {
		a++
		fmt.Printf("a 的值为: %d\n", a)
	}

	for i, x := range numbers {
		fmt.Printf("第 %d 位 x 的值 = %d\n", i, x)
	}
}

Go 语言允许用户在循环内使用循环

break

用于跳出当前循环
实例

package main

import "fmt"

func main() {
   /* 定义局部变量 */
   var a int = 10

   /* for 循环 */
   for a < 20 {
      fmt.Printf("a 的值为 : %d\n", 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\n", a);
      a++;     
   }  
}

goto

无条件转移代码执行位置,类似于汇编语言的JMP/LOOP
goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
但是,在结构化程序设计中一般不主张使用 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\n", a)
      a++     
   }  
}

无限循环/死循环

类似C语言的while(1)
实例

package main

import "fmt"

func main() {
    for true  {
        fmt.Printf("这是无限循环。\n");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值