go 语言基础 循环 for

本文详细介绍了Go语言中的循环结构,包括for循环的基本语法、执行流程及其变形,并演示了如何利用for循环解决实际问题,如计算阶乘、打印字符序列等。此外,还介绍了循环控制语句break和continue的用法。

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

循环

1.for循环
循环条件满足,循环体就会被执行,直到循环条件不满足为止。


2.for的语法结构
for 表达式1;表达式2;表达式3{
循环体;
}


3.for的执行流程:
表达式1:最开始执行,仅执行一次,惯用于变量的初始化。
表达式2:循环条件,是boo类型。
表达式3:循环体执行后执行,惯用于变量的变化。
package main

import "fmt"

func main() {
   /*

17.使用for循环,计算5的阶乘:5!=5*4*3*2*1

18.使用for循环,打印58-23数字

19.使用for循环,打印'A'到'Z'字母
      ‘A’-->int32,数值
         65,'A'

20.使用for循环,打印1-100内的数字,每行打印10个。
    */
   sum := 1
   for i := 5; i > 0; i-- {
      sum *= i
   }
   fmt.Println(sum)

   for i := 58; i >= 23; i-- {
      fmt.Println(i)
   }

   for i := 'A'; i <= 'Z'; i++ {
      fmt.Printf("%q\t", i)
   }
   fmt.Println()
   for i := 1; i <= 100; i++ {
      fmt.Print(i, "\t")
      if i%10 == 0 {
         fmt.Println() // print+line,直接换行
      }
   }
}
4.for的变形:
表达式1,2,3都可以省略
表达式2省略,意味着永真
for 表达式1;表达式2;表达式3{}  正常for循环
for 表达式2{} 没有初始值,只有退出条件,满足一定条件后退出
for{}  死循环
package main

import "fmt"

func main()  {
   /*
   for 表达式1;表达式2;表达式3{
      循环体
   }

    */
    //1.省略表达式1
   i := 1
    for ;i<5;i++{
      fmt.Println(i)//1,2,3,4
    }
    fmt.Println(i) // 5
   // 2省略表达2,相当于条件永远为true
   // for j:=0;;j++{
   //     fmt.Println(j)
   // }

   // 3省略表达式3
   for j:=0;j<10;{
      fmt.Println(j)//0 0 0....
      j++//1
   }
   // 4.3个表达式都省略
   //for {//?for true
   // fmt.Println(i)
   // i++
   //}
   // 5. 省略表达式1和3
   k :=0
   for k < 5{ // for ; k<5;
      fmt.Println(k) // 0 1 2 3 4
      k++ // 1 2 3 4 5
   }
}
5.break,continue
break:用于结束循环,循环彻底结束了。
continue:用于结束某次循环,循环下次继续。
如果多层循环嵌套,break和continue默认结束里层循环,如果要结束外层循环,需要贴标签。
package main

import "fmt"

func main()  {
   /*
   循环中的控制语句:break,continue
   循环正常结束:循环条件不满足,
   通过break和continue来结束循环。
   break:用于强制结束循环,无论循环条件是否满足
   continue:结束了某一次循环,循环下次继续。
    */
    for i := 1;i<=10;i++{
      if i % 2==0{
         fmt.Println(i)
         break
      }
    }

    for i := 1;i<=10;i++{
      if i == 5{
         //break
         continue
      }
      fmt.Println(i)
    }
    // 1.练习1,统计1-100内能被3整除不能被5整除的数,仅要前5个。

    // 2.打印从1开始的前20个奇数。
    i:=1
    count := 0
    for {
      if i % 2 != 0{
         fmt.Print(i,"\t") // 1
         count++ // 1
         if count == 20{
            break
         }
      }
      i++ // 2

   }
}


6.goto

跳转到指定位置。

package main

import "fmt"

func main()  {
   haha: fmt.Println("这是个标签")  //这里是第6行
   for i:=0;i<10;i++{
      if i==5{
         goto haha //这是标签 如果i=5就跳转到第6行,但是会造成死循环
      }
   fmt.Println(i)

   }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值