椿雪

goto--Go语句
//package main
//
//import "fmt"
// 等于15的时候跳转到loop语句15的时候不会打印
//func main() {
//	/* 定义局部变量 */
//	var a int = 10
//
//	/* 循环 */
//	LOOP: for a < 20 {
//		if a == 15 {
//			/* 跳过迭代 */
//			a = a + 1
//			goto LOOP
//		}
//		fmt.Printf("a的值为 : %d\n", a)
//		a++
//	}
//}

//package main
//import "fmt"
//func main() {
//	var breakAgain bool
//	// 外循环
//	for x := 0; x < 10; x++ {
//		// 内循环
//		for y := 0; y < 10; y++ {
//			// 满足某个条件时, 退出循环
//			if y == 2 {
//				// 设置退出标记
//				breakAgain = true
//				// 退出本次循环
//				break
//			}
//		}
//		// 根据标记, 还需要退出一次循环
//		if breakAgain {
//			break
//		}
//	}
//	fmt.Println("done")
//}

// goto应该尽量少用,减少理解的负担
package main

import "fmt"

func main() {
	// goto我的原则是坚决不用
	//goto能不能则不用,goto过于, label过多,整个程序到后期维护就会麻烦
	//最容易理解的代码逐行的执行,哪怕多一个函数的调用对于我们都是理解上的负担
	for x := 0; x < 10; x++ {
		for y := 0; y < 10; y++ {
			if y == 2 {
				// 跳转到标签
				goto breakHere
			}
		}
	}
	// 手动返回, 避免执行进入标签
	return
	// 标签
breakHere:
	fmt.Println("done")
}

// goto集中处理错误

  

posted on 2022-02-14 10:08  椿雪  阅读(46)  评论(0)    收藏  举报