5、Go條件、循環語句

1、Go if特點

1、if條件不需要括號

2、switch不需要break,也可以直接switch多個條件

3、switch後可以沒有表達式

package main

import (
	"fmt"
	"io/ioutil"
)

func main() {
	const  filename="abc.txt"
	contents,err :=ioutil.ReadFile(filename)
	//普通if語法
	if err != nil{
		fmt.Println(err)
	}else{
		fmt.Print("%s/n",contents)
	}

	//if條件中可以直接賦值,其作用域只有if代碼塊中
	if contents1,err:=ioutil.ReadFile(filename);err!=nil{
		fmt.Println(err)
	}else{
		fmt.Print("%s/n",contents1)
	}

	fmt.Println(grade(0),grade(66),grade(222))
}

func grade(score int) string{
	g:=""
	//switch後可沒有表達式
	switch  {
	case score<60:
		g="F"
	case score<80:
		g="c"
	case score<100:
		g="A"
	default:
		panic("error!!!!")
	}
	return g
}

2、Go循環特點

1、for的條件裏不需要括號

2、for的條件裏可以省略初始條件、結束條件、遞增表達式

3、沒有while

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

//十進制轉爲二進制
func convertToBin(n int)string{
	result := ""
	//省略初始條件
	for;n>0;n/=2{
		lsb:=n%2
		result = strconv.Itoa(lsb)+result
	}
	return result
}

func printFile(filename string){
	file,err := os.Open(filename)//打開一個文件,如果報錯,錯誤信息輸出至err
	if err != nil{
		panic(err)//輸出報錯信息
	}

	scanner := bufio.NewScanner(file)

	//省略初始條件,遞增條件,可省略分號
	for scanner.Scan(){
		fmt.Println(scanner.Text())
	}
}

func forever(){
	//死循環
	for  {
		fmt.Print("123")
	}
}

func main() {
	//fmt.Println(convertToBin(5),convertToBin(12))
	//printFile("abc.txt")
	forever()
}

本文內容來自慕課網教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章