其他分享
首页 > 其他分享> > 8.16Go之循环语句

8.16Go之循环语句

作者:互联网

8.16Go之循环语句

Go提供的循环结构:

  • for循环

  • 嵌套循环


如表所示:

循环类型描述
[for 循环] 重复执行语句块
[循环嵌套] 在 for 循环中嵌套一个或多个 for 循环

for循环

Go语言的for循环提供了三种形式

普通for循环

Java表示方式:

for (int i=0; i<10; i++){
}

go表示方式:

for i := 0; i < 10; i++{
}
//语法格式为
for init; condition; post { }
类似while循环

Java表示方式:

while(表达式判断){
}

go表示方式:(和C语言的while一样)

package main

import "fmt"

var (
cirCula bool
)

func main() {
cirCula = true
for cirCula == true {
fmt.Println("这是一个真值,其值为:", cirCula)
break
}
fmt.Println("这不是一个真值,其值为:", cirCula)
}
类似C的for(;;)
package main

import "fmt"

func main() {
i := 0
for {
i++
fmt.Println(i)
if i == 65535 {
fmt.Println("收工!!!")
break
}
}
}
for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。

类似Java,但又不同

public class PracticeCirculation{
   private static int[] intArray = new int[]{3,5,7,9};
   public static void main(String[] args){
       for(int num : intArray){
           System.out.Println(num);
      }
  }
}

go表示:

for key, value := range oldMap {
   newMap[key] = value
}
//对字符串、数组、切片等进行迭代输出元素。
//go中的key, value是同时将两个变量变成oldMap里面的key值和value值

以数组举例:

package main

import "fmt"

var (
intArray [4]int
)

func main() {
//创建一个四个存储空间的数组
intArray = [4]int{3,5,7,9}

//使用range格式
for key, number := range intArray{
intArray[key] = number
fmt.Println(intArray[key]) //intArray数组0号索引的值,key为索引号
fmt.Println(number) //number为值本身
}

numbers := [6]int{1,2,3,4,5,6}
for i, j := range numbers{
fmt.Println("第 %d 位的x的值为 %d\n", i, j)
}
}

代码分析:

在第二个range循环当中
i为索引
j为索引下对应的值
这是定义了两个变量

go的for-each--->range循环:这种格式的循环可以对字符串、数组、切片等进行迭代输出元素。

for语句执行过程分析:

嵌套循环

以冒泡排序举例:

	for i := 0; i < len(numbers); i++ {
for j := 0; j < len(numbers)-1-i; j++ {
if numbers[j] > numbers[j+1] {
//设置中间变量
temp := numbers[j]
numbers[j] = numbers[j+1]
numbers[j+1] = temp
}
}
}
for i, j := range numbers{
fmt.Println("索引",i, "对应的值为", j)
}

循环控制语句

go语言提供了C语言中的goto语句,使得代码变得更灵活:

循环控制语句可以控制循环体内语句的执行过程。

控制语句描述
[break 语句] 经常用于中断当前 for 循环或跳出 switch 语句
[continue 语句] 跳过当前循环的剩余语句,然后继续进行下一轮循环。
[goto 语句] 将控制转移到被标记的语句。

重点介绍goto语句

特点:

坏处:

语法:

goto label;
..
.
label: statement;

特点:

	num := 10
Loop:
for num < 20 {
if num == 15 {
//自增,回到标签处
num += 1
goto Loop
}
fmt.Println(num)
num++
}

无限循环

循环中条件语句永远不为 false 则会进行无限循环

package main

import "fmt"

func main() {
for true {
fmt.Printf("这是无限循环。\n");
}
}

 

标签:语句,goto,fmt,循环,numbers,intArray,Go,8.16
来源: https://www.cnblogs.com/JunkingBoy/p/15149545.html