GoLang(三)条件语句&&循环语句

条件语句

条件语言和分支是一个高级编程语言必须具备的特性,go语言中也提供了if和switch两种分支条件语句

if

语法

func getSex(sex int){
	if sex==0{
		fmt.Println("男")
	}else if sex == 1{
		fmt.Println("女")
	}else{
		fmt.Println("输入错误")
	}
}

if 语句也可以将一个表达式放在判断条件中,并且表达式中的变量作用范围只是在此if语句中生效

func getMax(a, b int) {
	if a = a + 1; a > b {
		fmt.Println("a",a)
	}else {
		fmt.Println("b",b)
	}
}

switch

switch 是处理多个条件或者分支的更加简洁的语法糖,go语言中提供了两种switch 语法

普通的switch

func displaySwitch(month int)  {
	switch month {
	case 1:
		fmt.Print("星期一")
	case 2:
		fmt.Print("星期二")
	default:
		fmt.Print("请输入正确")

	}
}

这种switch语法糖几乎每种语言都有,如果涉及到区间,这样做就很麻烦了,所以go语言有了带条件的switch语句

func getGrage(grage int) string {
	switch true {
	case grage < 60:
		return "不及格"
	case grage > 60 && grage <= 70:
		return "良"
	case grage == 100:
		return "满分"
	default:
		panic("不合法")

	}
}

循环语句

go语言中提供了一种语法糖的循环关键字:for

n以内的和:

func sum(num int) int {
	sum := 0
	for i := 0; i <= num; i++ {
		sum += i
	}
	return sum
}

将整数转换为2进制
可以没有开始条件

func convertToBin(num int) string {
	result := ""
	for ; num > 0; num /= 2 {
		lsb := num % 2
		result = strconv.Itoa(lsb) + result
	}
	return result
}

根据文件名从文件中读出数据并打印
可以没有开始和结束条件,其实相当于while(){}…

func printFile(fileName string) {
	file, e := os.Open(fileName)
	if e != nil {
		panic(e)
	}
	scanner := bufio.NewScanner(file)
	for scanner.Scan() {
		fmt.Println(scanner.Text())
	}
}

死循环

func forever() {
	for ; ; {
		fmt.Println("hello")
	}
}

OR


func forever1() {
	for {
		fmt.Println("你好")		
	}
}

其实循环内部实现的底层都一样,只是为了不同的场景,各个语言对外提供的api语法糖表现不一样罢了,go语言就统一了这种 ”不一样“ ,用for代替所有的循环

你可能感兴趣的:(GoLang)