003.Go语言的流程控制

该文介绍了Go语言中的条件控制结构,包括if语句的单分支、多分支用法,用于成绩评级;switch语句的值匹配功能,展示了一周计划的打印示例;以及for循环的各种应用场景,如打印数字序列、55方阵、99乘法表和菱形图案。
摘要由CSDN通过智能技术生成

目录

1.if语句

2.switch语句

3.for循环


1.if语句:条件判断

//单分支结构:if 条件 {}

//简单多分支结构: if 条件 {} else {}

//复杂多分支结构: if 条件 {} else if 条件 {} else {}

//使用if语句完成成绩评级

	fmt.Println("请录入你的成绩:")

	var score float64
	fmt.Scan(&score)

	if score > 100 || score < 0 {
		fmt.Println("成绩录入错误,请重新录入")
	} else if score >= 90 {
		fmt.Println("A")
	} else if score >= 80 {
		fmt.Println("B")
	} else if score >= 60 {
		fmt.Println("C")
	} else {
		fmt.Println("D")
	}

2.switch语句:值匹配

格式:switch 条件 { case 值1: 业务代码1 case 值2: 业务代码2 default 兜底值: 异常处理}

	//1.使用switch打印一周计划
	fmt.Println("请输入日期:周一->周日")

	var week string
	fmt.Scan(&week)

	switch week {
	case "周一", "周二", "周三", "周四", "周五":
		fmt.Println("上班")
	case "周六", "周日":
		fmt.Println("休息")
	default:
		fmt.Println("输入错误!!!")
	}


	//2.switch不传值默认是true
	switch {
	case false:
		fmt.Println("false")
	case true:
		fmt.Println("true")
	default:
		fmt.Println("Err")
	}
    
    /*3.case穿透
		fallthrough:case穿透;
		break:中止穿透
	*/
	switch {
	    case false:
		    fmt.Println("false")
	    case true:
		    fmt.Println("true")
		    fallthrough
	    default:
		    break
		    fmt.Println("Err")
	}

3.for循环

func main() {

	//格式: for 初始化语句;条件判断语句;步进表达式{}

	//1.打印 1-10 的值
	for i := 1; i <= 10; i++ {
		fmt.Println(i)
	}
	//2.打印55方阵
	for i := 0; i < 5; i++ {
		for i := 0; i < 5; i++ { //两层for循环的i作用域不同,可以这样使用
			fmt.Print("*")
		}
		fmt.Println()
	}
	//3.打印99乘法表
	for i := 1; i <= 9; i++ {
		for j := 1; j <= i; j++ {
			fmt.Printf("%d*%d=%d ", j, i, i*j)
		}
		println()
	}
	//4.打印菱形
	printLx(15)
	//5.死循环
	/*
		var i int
		for {
			i++
			fmt.Println(i)
		}
	*/
	//6.遍历的三种方式
	str := "hello"
	for i := 0; i < len(str); i++ {
		fmt.Printf("%c\n", str[i])
	}
	for i := range str {
		fmt.Printf("%c\n", str[i])
	}
	for _, v := range str {
		fmt.Printf("%c\n", v)
	}
}

// 打印一个n行的菱形
func printLx(line int) {
	//1.参数校验:行数不能小于3,行数必须为奇数
	if line < 3 {
		fmt.Printf("行数不能小于3")
		return
	} else if line%2 == 0 {
		fmt.Println("行数必须为奇数")
		return
	}
	//找到中间行
	zjh := line/2 + 1
	//2.打印上半部门的三角形:空格数=中间行-当前行,星号数量=2x中间行-1
	for i := 1; i < zjh; i++ {
		//打印空格
		kg := zjh - i
		for j := 1; j <= kg; j++ {
			fmt.Print(" ")
		}
		//打印*
		xh := 2*i - 1
		for k := 1; k <= xh; k++ {
			fmt.Print("*")
		}
		fmt.Println()
	}
	//3.打印中间行:星号数量=2x中间行-1
	xh := 2*zjh - 1
	for k := 1; k <= xh; k++ {
		fmt.Print("*")
	}
	fmt.Println()
	//4.打印下面的三角形:倒序打印上面的三角形
	for i := zjh - 1; i >= 1; i-- {
		//打印空格
		kg := zjh - i
		for j := 1; j <= kg; j++ {
			fmt.Print(" ")
		}
		//打印*
		xh := 2*i - 1
		for k := 1; k <= xh; k++ {
			fmt.Print("*")
		}
		fmt.Println()
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值