GO-运算符及流程控制

1 运算符

1.1 算数运算符

++(自增),–(自减)属于单独语句,不算运算符

运算符描述
+相加
-相减
*相乘
/相除

1.2 关系运算符

运算符描述
==判断是否相等
!=判断是否不相等
>判断是否大于
<判断是否小于
>=判断是否大于等于
<=判断是否小于等于

1.3 逻辑运算符

运算符描述
&&逻辑AND,与
||逻辑OR, 或
!逻辑NOT, 非

1.4 位运算符

运算符描述
&对应的二进位相与, 均为1才为1
|对应的二进位相或,有一个为1即为1
^对应的二进位相异或, 不一样则为1
<<左移n位, 乘以2的n次方
>>右移n位, 除以2的n次方

1.5 赋值运算符

运算符描述
=赋值
+=相加后赋值
-=相减后赋值
*=相乘后赋值
/=相除后赋值
%=求余后赋值
<<=左移后赋值
>>=右移后赋值
&=按位与后赋值
|=按位或后赋值
^=按位异或后赋值

2 流程控制

2.1 if

if ... else ...
	if 表达式 {
		代码1
	} else {
		代码2
	}


if ... else if ... else ...
	if 表达式1 {
		代码1
	} else if 表达式2 {
		代码2
	} else {
		代码3
	}

2.2 for

初始语句内定义的变量,随着循环结束而销毁
for 1 完全体
	for 初始语句;条件表达式;结束语句 {
		循环体代码
	}
	
	func main() {
		for i := 1; i < 10; i++ {
			fmt.Println(i)
		}
	}


for 2 无头体
	for ;条件表达式;结束语句 {		// 省略初始语句,分号不能省略
		循环体代码
	}
	
	func main() {
		i := 0
		for ; i < 10; i++ {
			fmt.Println(i)
		}
	}
	
	
for 3 无尾体
	for 初始语句;条件表达式; {		// 省略结束语句,分号不能省略
		循环体代码
	}
	
	func main() {
		for i := 1; i < 10; {
			fmt.Println(i)
			i++
		}	
	}
	

for 4 彻头彻尾体
	for 条件表达式 {					// 初始语句和结束语句都省略,分号也可以省略
		循环体代码
	}
	
	func main() {
		i := 1
		for i < 10 {
			fmt.Println(i)
			i++
		}
	}


for 5 无限体
	for {
		循环体代码
	}
	
	func main() {
		for {
			fmt.Println("Hello!")
		}
	}


for 6 遍历体
	数组、切片、字符串返回索引和值
	map返回键和值
	通道只返回值
	
	for 变量名 := range 可迭代对象 {
		循环体代码
	}
	
	func main() {
		name := "123abc一二三"
		for i, v := range name {
			fmt.Printf("%d: %c\n", i, v)
			fmt.Printf("%T: %T\n", i, v)
		}
	}


for 7 俄罗斯套娃
	func main() {
		for i := 1; i < 10; i++ {
			msg := ""
			for o := 1; o <= i; o++ {
				msg += fmt.Sprintf("%dx%d=%d ", i, o, i*o)
	
			}
			fmt.Println(msg)
		}
	}


for 8 跳出三界
	func main() {
		i := 1
		for {
			if i > 10 {
				break
			} 
			fmt.Println(i)
			i++
		}
	}


for 9 跳过当世
	func main() {
		for i := 1; i < 10; i++ {
			if i == 5 {
				continue
			}
			fmt.Println(i)
		}
	}

2.3 switch case

switch 变量 {
case 1// 变量等于1时执行
	代码
case 2:
	代码				// 变量等于2时执行
default:
	代码				// 不满足以上条件时执行
}

func main() {
	n := 3
	switch n {
	case 1:
		fmt.Println("1")
	case 2:
		fmt.Println("2")
	default:
		fmt.Println("null")
	}
}

2.4 goto

func main() {
	for i := 1; i < 10; i++ {
		for o := 1; o < 10; o++ {
			if o == 5 {
				goto tag				// 跳转到tag处
			}
			fmt.Printf("%d-%d\n", i, o)
		} 
	}
	tag:								// 跳转到此处
		fmt.Println("done")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值