四、Go中的条件判断和for循环

一、if条件判断

代码:

package main

import "fmt"

func main() {
	//if 条件判断
	score := 50
	judgingGrades(score)

}

/*
*
go语言中 if的用法
*/
func judgingGrades(score int) {
	if score >= 90 {
		fmt.Println("优等生")
	} else if score >= 80 || score >= 70 {
		fmt.Println("中等生")
	} else if score >= 60 {
		fmt.Println("刚好及格")
	} else {
		fmt.Println("差生")
	}
}

二、for循环

package main

import (
	"fmt"
)

func main() {

	/**
	go语言中只有 for循环
	没有 while while -true 这样的 在go语言中 都用 go来写了
	*/

	fmt.Println("-------------------for循环写法------------------")

	// 第一种 写法
	var i int
	for i = 0; i <= 100; i++ {
		//如果 i 够了100的话 就换行输出
		if i == 100 {
			fmt.Println(i)
		} else {
			fmt.Print(i)
		}

	}
	//第二种写法
	for ; i <= 100; i++ {
		//如果 i 够了100的话 就换行输出
		if i == 100 {
			fmt.Println(i)
		} else {
			fmt.Print(i)
		}

	}
	//第三种写法
	for j := 0; j <= 100; j++ {
		fmt.Print(j)
	}
	fmt.Println("------------------- while-true写法------------------")
	var c int
	for c < 3 {
		fmt.Println("循环了几次呢", c)
		c++
	}
	fmt.Println("-------------------死循环写法------------------")
	//for {
	//	//死循环就是不叫条件
	//	fmt.Println("死循环----")
	//}

	fmt.Println("-----------------------------------------for循环求 1-100的和")
	var sum1 int
	for a := 0; a <= 100; a++ {
		sum1 += a
	}
	fmt.Println("1-100的和是", sum1)
	fmt.Println("-----------------------------------------for循环 九九乘法表")

	for t := 1; t <= 9; t++ {
		for y := 1; y <= t; y++ {
			fmt.Printf("%d*%d=%d ", t, y, t*y)
		}
		fmt.Println()
	}

	// 相当于 java 里面的 foreach
	// 语法 for index, value := range 集合对象,字符串
	//
	fmt.Println("----------------------------------------- for循环遍历对象")

	name := "this is a pig 中文"
	for index, value := range name {
		fmt.Printf("%d,%c \n", index, value)
	}

	// ---------------------------------------------------- for循环退出
	// break 和
	for i := 0; i < 100; i++ {
		//如果 i ==9的话 就跳过9 进下一次循环
		if i == 9 {
			continue
		}
		// 如果 i ==10的话 就跳出循环 不走了就
		fmt.Print(i)
		if i == 10 {
			break
		}
	}
}

三、switch

package main

import "fmt"

/*
*

	switch var1 {
		case val1:
			.....
		case val2:
			.....
		default:
			.....
	}
*/
func main() {

	verSocre(91)

	var level int
	level = 2
	switch level {
	case 1:
		fmt.Println("省级")
	case 2:
		fmt.Println("市级")
	default:
		fmt.Println("其他级别")

	}

}

func verSocre(score int) {
	switch {
	case score > 90:
		fmt.Println("优等生")
	case score > 80:
		fmt.Println("中等生")
	case score > 70:
		fmt.Println("中等生")
	default:
		fmt.Println("差等生")
	}

}

四、goto语句

package main

import "fmt"

/*
*

	goto 语句 可以让我们的代码 调到指定的代码块中运行,灵活度很高
	一般情况下很少用。
	goto语句使用场景最多的地方,就是对程序的错误处理
*/
func main() {

	// 假如现在让实现 这么一个场景  当 j == 2的时候 整个循环都不走了
	// 如果我们使用 break的话 他跳出的是 当前循环 并没有都跳出去 所以这里使用 goto
	for i := 0; i < 5; i++ {
		for j := 0; j < 4; j++ {
			if j == 2 {
				//break
				goto over
			}
			fmt.Println(i, j)
		}
	}
over:
	fmt.Println("程序马上终止完成")

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往日时光--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值