Go语言流程控制03--goto跳转到任意标签位置

package main

import (
	"fmt"
	"time"
)

func main() {
	STUDYHARD:
	fmt.Println("开始努力奋斗")
		var i = 0
		for {
			fmt.Printf("努力奋斗了%d小时\n", i)
			time.Sleep(500*time.Millisecond)
			i ++

			if i > 10{
				//跳出当前循环
				fmt.Println("恭喜获得组织颁发奖状")
				goto TRYAGAIN
			}
		}

	BONUS:
		fmt.Println("循环外的世界")
		fmt.Println("送你海景别野一套")
		fmt.Println("送你满汉全席一套")
		fmt.Println("送你我厂生产的女朋友一个")

	TRYAGAIN:
		var answer string
		fmt.Println("要不要再玩一次?Y/N")
		fmt.Scan(&answer)
		if answer == "N"{
			goto GAMEOVER
		}else if answer == "Y" {
			goto STUDYHARD
		}else if answer == "FUCKOFF"{
			goto BONUS
		}

	GAMEOVER:
		fmt.Println("GAMEOVER")
}

输出:

开始努力奋斗
努力奋斗了0小时
努力奋斗了1小时
努力奋斗了2小时
努力奋斗了3小时
努力奋斗了4小时
努力奋斗了5小时
努力奋斗了6小时
努力奋斗了7小时
努力奋斗了8小时
努力奋斗了9小时
努力奋斗了10小时
恭喜获得组织颁发奖状
要不要再玩一次?Y/N
Y
开始努力奋斗
努力奋斗了0小时
努力奋斗了1小时
努力奋斗了2小时
努力奋斗了3小时
努力奋斗了4小时
努力奋斗了5小时
努力奋斗了6小时
努力奋斗了7小时
努力奋斗了8小时
努力奋斗了9小时
努力奋斗了10小时
恭喜获得组织颁发奖状
要不要再玩一次?Y/N
FUCKOFF
循环外的世界
送你海景别野一套
送你满汉全席一套
送你我厂生产的女朋友一个
要不要再玩一次?Y/N
N
GAMEOVER

  

posted @ 2019-11-03 16:34  Ethan_Cheng  阅读(267)  评论(0编辑  收藏  举报