当前位置: 首页 > 工具软件 > Go For It! > 使用案例 >

go-for

董良策
2023-12-01

基本样式

package main

func main(){
	for index:=0; index < 10; index++{
		println(index)
	}
}

一般的for样式,不过条件无括号,操作括号不可缺。

无限循环

public static void main(String[] args){
    int value = 0;
    for (;;){
        System.out.println(value++);
        if( value > 10){
            break;
        }
    }
}

在其他语言之中,for的操作空间已经极大提升,就算是你使用的是while,反编译之后你会发现也是for

func main(){
	var value int = 0
	for {
		if value++;value > 10 {
			break
		}
		println(value)
	}
}

如果不带任何条件的话,默认就是while(true)

当然,原来的for属性,你也依旧可以玩出花样

package main

func main(){
	value := 0
	for value < 10 {
		value++
		println(value)
	}
}
func main(){
	for value :=0; value < 10;value++{
		println(value)
	}
}

反正正如ifcaseforwhile也是一对,for总有办法替换while

遍历取数

package main

func main(){
	var arr [10]int
	for index:=0; index < len(arr); index++ {
		arr[index] = index
	}
	for _, value := range arr{
		println(value)
	}
}

配合range,就可以使用为forEach的结构了。

跳出循环

  • continue:结束本次操作,继续循环
  • break:跳出循环

这个不用说了吧

例子

猜数小游戏

package main

import (
	"fmt"
	"math/rand"
	"strconv"
)

func main(){
	var guess int
	for{
		answer := rand.Intn(100)
		for {
			fmt.Println("guess your number(0-99)")
			fmt.Scanln(&guess)
			if answer == guess {
				fmt.Println("good game, your are right, answer is "+ strconv.FormatInt(int64(guess), 10))
				break
			} else if guess > answer {
				fmt.Println("guess is bigger")
			} else {
				fmt.Println(" guess is smaller")
			}
		}
		fmt.Println("continue ? (1/0)")
		fmt.Scanln(&guess)
		if guess == 0 {
			break
		}
	}
}

九九乘法表

package main

import "fmt"

func main(){
	for a := 1; a < 10; a++ {
		for b := 1; b <= a; b++ {
			fmt.Printf("%d*%d=%d\t", a, b, a*b)
		}
		fmt.Println()
	}
}

星星塔

package main

import (
	"fmt"
)

func main(){
	var layer int
	fmt.Scanln(&layer)
	for index := 0; index <= layer; index++ {
		space(layer - index)
		for line := 0; line <= index; line++ {
			printStar()
			space(1)
		}
		newLine()
	}
}

func space(count int){
	for index:=0; index < count; index++ {
		print(" ")
	}
}
func printStar(){
	print("*")
}
func newLine(){
	println()
}
 类似资料: