Go语言学习笔记二--判断语言

本文是Go语言学习笔记的第二部分,主要介绍了Go语言中的判断语句(if)和循环语句(for)。讲解了if语句的不同用法,包括不需要括号的条件,以及在if语句中定义变量。对于switch语句,说明了其可以无表达式,并且不需要添加break。在循环部分,详细阐述了for循环的各种形式,如没有初始条件、只包含判断条件的情况,甚至如何实现死循环。最后,作者指出Go语言中没有while语句,但可以通过特定的for语句构造类似的功能。学习源码可在作者的GitHub找到。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

if语句

  • if语言demo,可以看出 if语句后条件不需要加()
/**
if语言demo,可以看出 if语句后条件不需要加()
*/
func ifDemo() {

	const filename = "adc.txt"

	bytes, e := ioutil.ReadFile(filename) //golang返回值可以是多个,需要多个值来接收

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

	if file, i := ioutil.ReadFile(filename); i != nil { //另一种写法,if语句中是可以跟多个语句,必须使用;分号隔开,条件中可以赋值
		fmt.Println(e)
	} else {
		fmt.Printf("%s/n", file)
	}

}

switch用法

  • switch后可以没有表达式
  • switch用法,不需要添加 break,会自动返回

/**
switch用法,不需要添加 break,会自动返回
switch后可以没有表达式
*/
func switchDemo() {
	fmt.Print(grade(81), grade(20), grade(100), grade(90))
}

func grade(soure int) string {

	g := ""
	switch {
	case soure < 60:
		g = "F"
	case soure < 80:
		g = "D"
	case soure < 90:
		g = "B"
	case soure <= 100:
		g = "A"
	case soure < 0 || soure > 100:
		panic(fmt.Sprintf("Wrong score: %d", soure))
	}
	return g
}

循环语句for

  • for条件不需要括号
  • for可以省略初始条件,递增条件,判断条件

正常的for循环使用


/**
正常的for循环使用

- for条件不需要括号
- for可以省略初始条件,递增条件,判断条件
*/
func forDemo() {
	sum := 0
	for i := 0; i <= 100; i++ {
		sum += i
	}
	println(sum)
}

for可以没有初始条件

/**
	- for可以没有初始条件

转换二进制
	一个(n)十进制的数转换为2进制 步骤
			n / 2 得到的数字 % 2 所得到的数字 向前放置
			当 n / 2 为0时结束
*/
func convert2Bin(n int) string {

	bin := ""
	for ; n > 0; n /= 2 {
		bin = strconv.Itoa(n%2) + bin
	}
	return bin
}

for只有判断条件

  • 相当于while语句
/**
读取文件时
	使用os.open(string文件名)打开一个文件
	然后通过bufio.NewScanner(file) 生成一个文件的扫描
	for只有一个判断语言,就能类似与 while循环语言 ,
	值得一提的是golang中没有while语句
*/
func printFile(filename string) {

	file, e := os.Open(filename)

	if e != nil {
		panic(e)
	}

	scanner := bufio.NewScanner(file)

	for scanner.Scan() {
		println(scanner.Text())
	}

}

for没有条件–相当于死循环

  • Golang中没有while语句
  • 死循环直接使用for不加任何条件

/**
对于死循环来说,
	golang有更加简洁的写法
	直接使用for不加条件,就是死循环
	相比java -> 死循环 for(;;) 或者用的最多的 while(true)  会更加简洁
*/
func forever() {
	for {
		println("a")
	}
}

总结

  • 总结for
    • 忽略初始条,相当于while
    • 死循环直接使用for {} (后面什么条件也不加)
  • 基本语法
    • for,if后面条件语句不需要括号
    • if条件里也可以定义变量
    • 没有while
    • switch不需要break

作者所有的学习源码在 go学习源码github地址,如果觉得有用的话帮小智贡献一个star?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值