# 运算符
符号 | 描述 |
---|---|
+ | 变量相加 |
- | 数字相减 |
* | 数字相乘 |
/ | 数字相除 |
% | 数字求余 |
++ | 自加 |
-- | 自减 |
一个实例:
package main | |
import "fmt" | |
func main() { | |
var a int = 21 | |
var b int = 10 | |
var c int | |
c = a + b | |
fmt.Printf("第一行 - c 的值为 %d\n", c ) | |
c = a - b | |
fmt.Printf("第二行 - c 的值为 %d\n", c ) | |
c = a * b | |
fmt.Printf("第三行 - c 的值为 %d\n", c ) | |
c = a / b | |
fmt.Printf("第四行 - c 的值为 %d\n", c ) | |
c = a % b | |
fmt.Printf("第五行 - c 的值为 %d\n", c ) | |
a++ | |
fmt.Printf("第六行 - c 的值为 %d\n", a ) | |
a-- | |
fmt.Printf("第七行 - c 的值为 %d\n", a ) | |
} |
# 分支结构
# 单分支
# if 结构
package main | |
import "fmt" | |
func main() { | |
var a int | |
fmt.Scanln(&a) | |
if a > 10{ | |
fmt.Println("a大于10") | |
} | |
} |
if 表达式格式如下: if 布尔表达式 {语句}
为真执行语句,为假不执行
# 双分支
# if else 结构
package main | |
import "fmt" | |
func main() { | |
var a int | |
fmt.Scanln(&a) | |
if a > 10 { | |
fmt.Println("a大于10") | |
} else { | |
fmt.Println("a小于等于10") | |
} | |
} |
大括号后接 else 即可,无需条件
当布尔表达式为假时,执行 else 代码块
# 多分支
# if else if 结构
package main | |
import "fmt" | |
func main() { | |
var a int | |
fmt.Scanln(&a) | |
if a > 10 { | |
fmt.Println("a大于10") | |
} else if a > 5 { | |
fmt.Println("a大于5") | |
} else if a > 0 { | |
fmt.Println("a大于0") | |
} else { | |
fmt.Println("a小于0") | |
} | |
} |
一个分支结构可以有零、一或无数个 else if 代码块
当 if 的表达式不满足时,继续检查 else if 的表达式,都不满足执行 else
一个 if else 结构至多执行一个代码块,多个代码块需要 if...if... 结构
# switch 结构
package main | |
import "fmt" | |
func main() { | |
var a int | |
fmt.Scanln(&a) | |
switch a { | |
case 5: | |
fmt.Println("a为5") | |
case 10: | |
fmt.Println("a为10") | |
default: | |
fmt.Println("a不为5或10") | |
} | |
} |
switch 的语法如下:
switch anyvar { | |
case var1: | |
// code | |
case var2: | |
// code | |
default: | |
// code | |
} |
switch...case... 不是通过缩进识别结构,是在这个 case 到下个 case 之间的代码
都视作一个代码块
case 后是一个准确的变量 / 值,不是布尔表达式
如果没有任何一个 case 执行,则执行 default 代码块
select 结构放在信道里将,这里先跳过