Go语言学习(2)

if
if语句基本结构:

if expre {
	//代码块
} else if exper1 {
	//代码块
} else {
	//代码块
}

先看个例子:

package main

import "fmt"

func main() {
	x := 3
	if x>5 {
		fmt.Printf("%d 大于 5",x)
	} else {
		fmt.Printf("%d 小于 5",x)
	}
}

输出:

3 小于 5
Process finished with exit code 0

go语言if语句还支持在判断语句中声明变量,但该变量的作用域仅在判断语句中。

package main

import (
	"fmt"
)

func addval(x int,y int) (sum int) {
	sum = x+y
	return sum
}

func main() {
	if x := addval(1,3); x > 5 {
		fmt.Printf("%d 大于 5",x)
	} else {
		fmt.Printf("%d 小于 5",x)
	}
	println(x)  //此时的x 并没有定义,会引发错误
}

输出:

.\main.go:18:10: undefined: x

for

for语句可以循环、迭代数据 还可以像while一样控制逻辑。
常常使用for语句,还会使用breakcontinuegoto等关键字来操作。

for语句基本结构:

for expre1; expre2; expre3 {
    //...
}

expre1:是在for语句开始前调用
expre2:是for语句的条件判断
expre3:是在for语句每轮循环结束时调用

举个栗子-打印九九乘法表:

package main

import "fmt"

func main() {
	for i :=1; i<10 ; i++  {
		for j := 1;j<= i ; j++ {
			fmt.Printf("%dx%d=%d ",j,i,i*j)
		}
		fmt.Println()
	}
}

输出:

1x1=1 
1x2=2 2x2=4 
1x3=3 2x3=6 3x3=9 
1x4=4 2x4=8 3x4=12 4x4=16 
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 

Process finished with exit code 0

for语句中像while的用法:

package main

import "fmt"

func main() {
	sum :=1
	for sum<100{
		sum +=sum
	}
	fmt.Println(sum)
}

输出:

128

Process finished with exit code 0

switch

switch语句像许多语言的开关语句一样,如果一个if语句中有else if会让程序不易读懂和美观,这时建议使用switch语句。

switch语句基本结构:

switch sExpr {
case expr1:
    some instructions
case expr2:
    some other instructions
case expr3:
    some other instructions
default:
    other code
}

如果switch没有表达式,则返回true
需要注意的是,每个case都相当于自带break,当匹配到后不会继续后面的代码
如果有继续执行后面的case代码的需求,可以使用fallthrough关键字,来强制执行后面的语句。

使用fallthrough关键字例子:

package main

import "fmt"

func main() {
	x := 3
	switch x {
	case 1:
		fmt.Println("x = 1")
		fallthrough
	case 2:
		fmt.Println("x = 2")
		fallthrough
	case 3:
		fmt.Println("x = 3")
		fallthrough
	case 4:
		fmt.Println("x = 4")
		fallthrough
	default:
		fmt.Println("x = 0")
	}
}

输出

x = 3
x = 4
x = 0

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值