栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Go语言之旅(语言基本语法--条件if与匹配switch与循环for)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go语言之旅(语言基本语法--条件if与匹配switch与循环for)

Go语言基本语法
# 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、条件表达式 1.if条件语句的语法

注意:

  1. if的条件里可以赋值;
  2. if的条件里赋值的变量作用域就在这个if语句里面
const filename = "abc.txt"
	contents,err := ioutil.ReadFile(filename)
	if err !=nil{
		fmt.Println(err)
	} else {
		fmt.Printf("%sn",contents)
	}

if条件语句还有一种简介的写法

const filename1 = "abc.txt"
	if contents1,err1 := ioutil.ReadFile(filename1) ; err1 != nil {
		fmt.Println(err1)
	}else{
		fmt.Printf("%sn",contents1)
	}
二、switch的语法

注意:

  1. 与C和Java的区别,不需要break
  2. switch会自动break,除非使用fallthrough
1.标准写法
func switchDemo(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("unsupported operator:" + op)//panic相当于报错
	}
	return result
}

switch还有一种写法,switch可以没有表达式

func switchGrade(score int) string {
	g := ""
	switch{
	case score < 0 || score > 100:
		//panic的作用就相当于报错一旦有不符合的值就会抛出错误
		panic(fmt.Sprintf("Wrong score: %d",score))
	case score < 60:
		g = "F"
	case score < 80:
		g = "C"
	case score <90:
		g = "B"
	case score <=100:
		g = "A"
	}
	return g
}
func main() {
	fmt.Println(
		switchGrade(0),
		switchGrade(59),
		switchGrade(60),
		switchGrade(82),
		switchGrade(99),
		switchGrade(100),
		switchGrade(101),
	)
}

如果出现不符合的值就会抛出错误:

panic: Wrong score: 101

goroutine 1 [running]:
main.switchGrade(0xd49780)
	D:/Goland_demo/20211206.go:62 +0xb4
main.main()
	D:/Goland_demo/20211206.go:35 +0x293

Process finished with the exit code 2

三、for循环的语法 1.基本语法
func forDeme(){
	sum := 0
	for i:= 1; i <=100; i ++{
		sum += i
	}
}

注意:

  1. for的条件里面不需要括号
  2. for的条济南里可以省略初始条件,结束条件,递增表达式
func converTOBin(n int) string {
	result := ""
	for ; n > 0; n /= 2 {
		lsb := n % 2
		result = strconv.Itoa(lsb) + result
	}
	return result
}

注意:
省略初始条件和结束条件,相当于Java的while,go语言没有while

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

for循环什么条件都不写,就是一个死循环

func forever() {
	for {
		fmt.Println("abc")
	}
}

总结
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/644507.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号