1. 程式人生 > >day02 Go 條件語句if和switch

day02 Go 條件語句if和switch

1、Go 語言提供了以下幾種條件判斷語句

語句 描述
if 語句 if 語句 由一個布林表示式後緊跟一個或多個語句組成。
if...else 語句 if 語句 後可以使用可選的 else 語句, else 語句中的表示式在布林表示式為 false 時執行。
if 巢狀語句 你可以在 if 或 else if 語句中嵌入一個或多個 if 或 else if 語句。
switch 語句 switch 語句用於基於不同條件執行不同動作。
select 語句 select 語句類似於 switch 語句,但是select會隨機執行一個可執行的case。如果沒有case可執行,它將阻塞,直到有case可執行。

 

2、例子

package main

import (
	"fmt"
	"io/ioutil"
)

func bounded(v int) string {
	if v > 100 {
		return  "A"
	} else  if v > 80 {
		return "B"
	} else {
		return "C"
	}
}

func eval (a,b int, op string)  int  {
	var result int
	switch  op {
	case "+":
		result = a + b
	case "-":
		result = a - b
	case "*":
		result = a * b
	case "/":
		result = a / b
	default:
		panic("unsupport op:" + op)
	}
	return  result
}

func grade(v int) string {
	var g string
	switch {
	case v < 0 || v > 100 :
		panic(fmt.Sprintf("unsupport nums %s",v))
	case v <= 60:
		g = "D"
	case v <= 70:
		g = "C"
	case v <= 80:
		g = "B"
	case v <= 100:
		g = "A"
		}
	return g

}

func main ( )  {
	fmt.Println(
			bounded(99),
			bounded(22),
			bounded(77),
		)

	// 方法一
	const filename = "abc.txt"
	content,err := ioutil.ReadFile(filename)

	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Printf("%s\n",content)
	}

	//方法二
	if content1,err1 := ioutil.ReadFile(filename) ; err1 != nil {
		fmt.Println(err1)
	} else {
		fmt.Printf("%s\n", content1)
	}

	fmt.Println(
		eval(3,4,"+"),
		eval(1,3,"*"),
		)
	
	fmt.Println(
		grade(50),
		grade(77),
		grade(100),
		)
}