Go语言基础知识总结:运算符与流程控制

82 阅读4分钟

在Go语言编程中,理解运算符的使用和掌握流程控制语句的结构,是编写高效、清晰程序的基础。本文将从运算符和流程控制两大部分进行系统归纳与讲解。

一、运算符

Go语言支持多种运算符,用于执行数学运算、逻辑判断、赋值、位运算等。主要包括以下几类:

(一)算术运算符

用于执行基本的数学运算:

【1】+ (加号):1、正数 2、相加操作。3、字符串拼接

【2】/ (除号):两int类型数据运算,结果一定为整数类型。若浮点类型参与运算,结果为浮点类型。

【3】%(取模):等价公式: a%b=a-a/b*b

【4】++(自增操作):加一操作

-- (自减操作):减一操作

go语言里,++、--操作非常简单,只能单独使用,不能参与到运算中去,且只能在变量后面,不能写在变量前面。

(二)赋值运算符

用于将值赋给变量,包括复合赋值运算:

=:=右侧到值运算清楚后,再赋值给=的左侧

+=, -=, *=, /=, %=:如 a += b 等价于 a = a + b,其他同理。

(三)关系运算符

用于比较两个值,返回布尔值(true 或 false):

  ==(等于)、!=(不等于)

(大于)、<(小于) 

=(大于等于)、<=(小于等于)这些运算符常用于流程控制语句中。

四)逻辑运算符

用于逻辑运算,返回布尔值:

 &&:逻辑与,只有两个操作数都为true时,结果才为true。具备“短路”特性,若左边为false,右边将不再执行。

 ||:逻辑或,只要有一个为true,结果就是true。同样具有短路特性。

 !:逻辑非,用于取反。

(五)位运算符

用于按位进行与、或、异或操作:

&(按位与)、|(按位或)、^(按位异或)

(六)其他运算符

&:取地址符,返回变量的内存地址。

*:指针解引用,获取指针指向的变量的值。

二、流程控制

流程控制用于控制程序执行的顺序,将程序组织成具有逻辑功能的模块。

1. 顺序结构

最基本的执行结构,程序按照从上到下的顺序依次执行每条语句。

2. 分支结构

(1)if语句

单分支结构

if 条件 {

    // 逻辑代码

}

当条件成立时,执行代码块,Go语言中建议省略条件表达式的圆括号,但花括号{}不能省略。

双分支结构:

if 条件 {

    // 条件成立时执行

} else {

    // 条件不成立时执行

}

一定会执行其中一个分支。

多分支结构:

if 条件1 {

    // 分支1

} else if 条件2 {

    // 分支2

} else {

    // 默认分支

}

从上往下判断,一旦条件满足,就不会继续执行后续判断。

(2)switch语句

基本语法

switch 表达式 {

case 值1, 值2:

    // 语句块1

case 值3:

    // 语句块2

default:

    // 默认语句

}

注意事项

1、switch后是一个表达式(即:常量值、变量、一个又返回值的函数等都可以)

2、case后面的表达式如果是常量值(字面量),则要求不能重复。

3、case后的各个值的数据类型,必须和switch的表达式数据类型一致

4、case后面可以带多个值,使用逗号间隔。比如case值1,值2...

5、case后面不需要带break

6、default语句不是必须的,位置也是随意的。

7、switch后也可以不带表达式,当作if分支来使用。

8、switch后也可以直接声明/定义一个变量分号结束(不推荐)

9、switch穿透,利用fallthrough关键字,如果在case语句块后增加fallthrough,则会继续执行下一个case,也叫switch穿透。

3. 循环结构

Go语言仅支持一种循环结构:for循环。

基本语法

for 初始语句; 条件表达式; 迭代语句 {

    // 循环体

}

示例

for i := 0; i < 5; i++ {

    fmt.Println(i)

}

注意事项:

初始化语句不能使用var声明,应使用:=;

虽然Go只有for一种循环,但可实现类似while和无限循环的效果。

死循环示例

for {

    fmt.Println("你好,Golang")

}

使用 Ctrl+C 可以终止运行。

三、关键字与控制语句

(1)break

用于终止最近的一层循环或switch语句。

在多层循环中,break默认只退出最内层;

可结合标签使用,以退出指定层次的循环。

(2)continue

用于跳过本次循环的剩余部分,立即开始下一次循环。

同样只影响最近的一层循环。

(3)goto(不推荐使用)

无条件跳转到程序中的指定标签。虽在Go语言中被支持,但容易造成代码逻辑混乱,不建议使用。

(4)return

用于结束当前函数的执行,并返回调用处。常用于函数的中止和返回值输出。