条件语句和循环语句--就要学习Go系列

原创文章,若需转载请注明出处!
欢迎扫码关注公众号「Golang来了」或者移步 www.seekload.net,查看更多精彩文章。

前言

今天,我们来看下条件语句和循环语句,学起来!

条件语句

if语句

//if
if a%2 == 0 {
	println("偶数")
}
//if else
if a%2 == 0 {
	println("偶数")
}else {
	println("奇数")
}
//多分支
if a > 0 {
	println("大于零")
}else if a == 0 {
	println("等于零")
}else {
	println("小于零")
}

在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句,形如

if a > 0 {
	if x {
		//...
	}else {
		//...
	}
}else {
	//...
}

注意:if 语句没有圆括号,但是必须要有花括号

switch

switch i {
	case 0:
		fmt.Printf("zero")
	case 1:
		fmt.Printf("one")
	case 2:
		fallthrough
	case 3:
		fmt.Printf("three")
	case 4, 5, 6:
		fmt.Printf("four, five, six")
	default:
		fmt.Printf("Default")
	}

不知道大家有没有注意到,switch语句是没有break的,而且还可以case多个值。这里大家会有个疑惑,当i==2时,会输出什么,答案是:three。因为如果在case中明确添加 fallthrough 关键字,才会继续执行紧跟的下一个case。
注意到一个比较有意思的地方,switch后面的表达式并不是必须的:

switch {
	case 0 <= Num && Num <= 3:
		fmt.Printf("0-3")
	case 4 <= Num && Num <= 6:
		fmt.Printf("4-6")
	case 7 <= Num && Num <= 9:
		fmt.Printf("7-9")
	default:
		fmt.Printf(">9")
	}

看了上面代码,其实这段代码逻辑与使用if-else结构等同。
select大家可以暂且不用管,到后面我会单独写一篇文章介绍的。

循环语句

for语句

for语句的三种格式

//1、经典的for循环
for i:=0;i<10 ;i++  {
	fmt.Printf("%d\n",i)
}
//2、简洁的for循环
i := 1
for i < 10  {
	fmt.Printf("%d\n",i)
	i++
}
//3、死循环的for语句
i := 1
for {
	if i>5 {
		break
	}
	fmt.Printf("%d\n",i)
	i++
}

另一种用法:for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。

numbers := [6]int{1, 2, 3, 4}
for i, x := range numbers {
	fmt.Printf("第 %d 位 x 的值 = %d\n", i, x)
}

不难想到,上面这段代码的输出:

0 位 x 的值 = 11 位 x 的值 = 22 位 x 的值 = 33 位 x 的值 = 44 位 x 的值 = 05 位 x 的值 = 0

注意:go语言中没有while语句
有循环语句,那就必定要提提循环控制语句:continue、breakgoto

其中,continuebreak和其他语言的中的用法类似,这里给出一个goto的使用例子。但是,在实际编写结构化程序的时候,一般都不主张使用goto语句,不然会给代码Review和调试程序造成困难。

/* 定义局部变量 */
	var a int = 10

	/* 循环 */
	LOOP: for a < 20 {
		if a == 15 {
			/* 跳过迭代 */
			a = a + 1
			goto LOOP
		}
		fmt.Printf("a的值为 : %d\n", a)
		a++
	}

输出:

a的值为 : 10
a的值为 : 11
a的值为 : 12
a的值为 : 13
a的值为 : 14
a的值为 : 16
a的值为 : 17
a的值为 : 18
a的值为 : 19

看到这里,对于Go的运算符、条件语句和循环语句有了大概的了解。从其他语言转学Go的同学,可以比较下这部分语法跟你之前掌握的语言的异同。比如之前掌握Java、PHP或者C,就可以对比下这部分,这样对比学习可以加深对知识的理解,能够更快掌握。不管之前有没有开发语言的基础,学习一门新语言的重点还是自己要多多练习。

(全文完)

扫描上方二维码,欢迎关注公众号「Golang来了」,获取最新精彩文章!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Seekload

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值