Golang 基础(九)循环

Overview

  • for语法
package main

func main() {
	for {
	}
}
  • for循环的四种形式
    • 死循环
    • 条件判断
    • 变量&条件
    • 变量&条件&赋值
  • continue

        在for循环中,当循环遇到continue关键字时,会停止当前循环,开始下一次循环

  • break

        在for循环中,当循环遇到break关键字时,会跳出该循环 

  • for循环的标签

        对for进行打标签,然后可以通过break和continue实现多层循环的跳出和终止

  • goto

        跳跃到指定的行,然后向下执行代码

Description

1)For循环 

1.猜年龄,一直提示用户输入年龄,如果比18大,则显示猜测的结果大了,如果比18小,则显示猜测的结果小了,只有输入等于18,显示猜测结果正确,然后退出循环

package main

import "fmt"

func main() {
	var age int
	var flag bool = true
	for flag {
		fmt.Print("Please enter your age: ")
		fmt.Scan(&age)
		if age > 18 {
			fmt.Println("大了")
		} else if age < 18 {
			fmt.Println("小了")
		} else if age == 18 {
			fmt.Println("正确")
			flag = false
		}

	}
}

 2.使用循环输出1-100所有整数

package main

import "fmt"

func main() {
	for i := 1; i < 101; i++ {
		fmt.Println(i)
	}
}

 3.使用循环输出1 2 3 4 6 7 8 9 10,即:10以内除了5以外的整数

package main

import "fmt"

func main() {
	for i := 1; i < 11; i++ {
		if i != 5 {
			fmt.Println(i)
		}
	}
}

 4.输出1-10内的所有奇数

package main

import "fmt"

func main() {
	for i := 1; i < 11; i++ {
		if i%2 == 1 {
			fmt.Println(i)
		}
	}
}

 5.输出1-10内的所有偶数

package main

import "fmt"

func main() {
	for i := 1; i < 11; i++ {
		if i%2 == 0 {
			fmt.Println(i)
		}
	}
}

6.求1-100的所有整数的和

package main

import "fmt"

func main() {
	n := 0
	for i := 1; i < 101; i++ {
		n = n + i
	}
	fmt.Println(n)
}

7.输出10-1所有整数

package main

import "fmt"

func main() {
	for i := 10; i > 0; i-- {
		fmt.Println(i)
	}
}

2)continue 

1.Continue: 遇到continue停止当次循环,执行下一次循环

package main

import "fmt"

func main() {
	for {
		fmt.Println("Golang")
		continue
		fmt.Println("Linux")
	}
}

 这是一个死循环,当遇到continue时,则停止当次循环,开始执行下一次循环

3)多循环嵌套

package main

import "fmt"

func main() {
	for i := 1; i < 4; i++ {
		for j := 1; j < 5; j++ {
			if i == 3 {
				continue
			}
			fmt.Println(i, j)
		}
	}
}

 4)break

 当循环遇到break,跳出循环

package main

import "fmt"

func main() {
	for {
		fmt.Println("Golang")
		break
		fmt.Println("Linux")
	}
}

 多循环嵌套

package main

import "fmt"

func main() {
	for i := 1; i < 4; i++ {
		for j := 1; j < 5; j++ {
			if j == 3 {
				break
			}
			fmt.Println(i, j)
		}
	}
}

 5)for循环的标签

 1.对for循环打标签 标签: for {},continue终止当前标签指向的循环

package main

import "fmt"

func main() {
f1:
	for i := 1; i < 4; i++ {
		for j := 1; j < 5; j++ {
			if j == 3 {
				continue f1
			}
			fmt.Println(i, j)
		}
	}
}

 ​当循环开始,1 1,1 2, 1 3时,j=3,则满足if条件,continue 则跳出循环,而此刻continue后是外层循环的标签f1,则是跳出外层循环,所以结果是1 1,1 2, 2 1, 2 2,3 1,3 2

2.对for循环打标签,标签:for{},break跳出当前标签指向的循环

package main

import "fmt"

func main() {
f1:
	for i := 1; i < 4; i++ {
		for j := 1; j < 5; j++ {
			if j == 3 {
				break f1
			}
			fmt.Println(i, j)
		}
	}
}

 ​同样,循环开始是1 1, 1 2,1 3,当j==3时满足if条件,则进行break跳出当前循环,此时break f1是跳出指定标签的循环,则跳出外层循环,结果则是1 1, 1 2

6)Goto

对指定行打标签,goto直接跳转到指定行然后执行代码

package main

import "fmt"

func main() {
	fmt.Print("这是银行系统,请输入姓名办理业务: ")
	var name string
	fmt.Scan(&name)
	if name == "Jeremy" {
		goto VVIP
	} else if name == "Kelvin" {
		goto VIP
	}
	fmt.Println("预约")
VIP:
	fmt.Println("排队")
VVIP:
	fmt.Println("办理业务")
}

Golang 基础(十)变量/指针内存原理-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值