go语言入门(3)运算符及流程控制
1,运算符
算数运算符:+ - * / % ++ --
关系运算符:== != < > <= >==
逻辑运算符:按位与 & 按位或 | 异或 ^ 左移<< 右移 >>
赋值运算符:= += -= *= /= 等等算数运算符和逻辑运算符与 = 组合
其他运算符
运算符 术语 示例 说明
& 取地址运算符 &a 变量a的地址
* 取值运算符 *a 指针变量a所指向内存的值
2,流程控制
Go语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。
选择结构
1)if
var a int =
if a == { //条件表达式没有括号
fmt.Println("a==3")
} //支持一个初始化表达式, 初始化字句和条件表达式直接需要用分号分隔
if b := ; b == {
fmt.Println("b==3")
}
if ... else
if a := ; a == {
fmt.Println("a==4")
} else { //左大括号必须和条件语句或else在同一行
fmt.Println("a!=4")
}
if ... else if ... else
if a := ; a > {
fmt.Println("a>3")
} else if a < {
fmt.Println("a<3")
} else if a == {
fmt.Println("a==3")
} else {
fmt.Println("error")
}
2)switch
Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码:
var score int =
switch score {
case :
fmt.Println("优秀")
//fallthrough
case :
fmt.Println("良好")
//fallthrough
case , , :
fmt.Println("一般")
//fallthrough
default:
fmt.Println("差")
}
循环结构
1)for
var i, sum int
for i = ; i <= ; i++ {
sum += i
}
fmt.Println("sum = ", sum)
2)rang
关键字 range 会返回两个值,第一个返回值是元素的数组下标,第二个返回值是元素的值
s := "abc"
for i := range s { //支持 string/array/slice/map。
fmt.Printf("%c\n", s[i])
} for _, c := range s { // 忽略 index
fmt.Printf("%c\n", c)
} for i, c := range s {
fmt.Printf("%d, %c\n", i, c)
}
跳转语句
1)break和continue
for i := ; i < ; i++ {
if == i {
//break //break操作是跳出当前循环
continue //continue是跳过本次循环
}
fmt.Println(i)
}
注意:break可⽤于for、switch、select,⽽continue仅能⽤于for循环。
2)goto
用goto跳转到必须在当前函数内定义的标签
func main() {
for i := ; i < ; i++ {
for {
fmt.Println(i)
goto LABEL //跳转到标签LABEL,从标签处,执行代码
}
}
fmt.Println("this is test")
LABEL:
fmt.Println("it is over")
}
go语言入门(3)运算符及流程控制的更多相关文章
- 格式化输出的三种方式,运算符及流程控制之if判断
''' 格式化输出的三种方式,运算符及流程控制之if判断 ''' # 格式化输出的三种方式 # 一.占位符 程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式 比如要求用户输入用户名和年龄 ...
- Java 中的运算符和流程控制
Java 中的运算符和流程控制 + 面试题 算术运算符 Java 中的算术运算符,包括以下几种: **算术运算符** **名称** **举例** + 加法 1+2=3 - 减法 2-1=1 \* 乘法 ...
- GO语言的进阶之路-流程控制
GO语言的进阶之路-流程控制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑.流程控制 ...
- Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)
I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量 env:环境变量 常用系统变量: path pwd lang home his ...
- Excel VBA入门(四)流程控制2-循环控制
所谓循环控制,即在循环执行一段代码,用于完成一些重复性任务. VBA中的循环控制语句主要有3种:for.while.loop.对于大多数人来说,for的使用频率最高,而我个人也觉得for是最为灵活的, ...
- Excel VBA入门(三) 流程控制1-条件选择
VBA中的流程控制分为两种,其一是条件结构式的,即根据条件判断的结果去选择性执行相应的语句(块):另一种是循环,即循环地执行语句(块).本节介绍第一种. 1. IF if 语句其实包含有几种形式: ① ...
- python基础02—运算符与流程控制
运算符与流程控制 运算符 赋值运算 用'='表示,'='的左边只能是变量 算术运算 +.-.*:加.减.乘 /:除法运算,运算结果为浮点数 //:除法运算,运算结果为整数(商) %:求余 **:求幂 ...
- Lua的五种变量类型、局部变量、全局变量、lua运算符、流程控制if语句_学习笔记02
Lua的五种变量类型.局部变量.全局变量 .lua运算符 .流程控制if语句 Lua代码的注释方式: --当行注释 --[[ 多行注释 ]]-- Lua的5种变量类型: 1.null 表示 ...
- python 运算符与流程控制
运算符与流程控制 运算符 赋值运算 用'='表示,'='的左边只能是变量 算术运算 +.-.*:加.减.乘 /:除法运算,运算结果为浮点数 //:除法运算,运算结果为整数(商) %:求余 **:求幂 ...
- Python-基本运算符与流程控制
目录 基本运算符 算术运算符 比较运算符 赋值运算符 逻辑运算符 身份运算符 位运算符 成员运算符 运算符优先级 流程控制 if 判断 单分支结构 双分支结构 多分支结构 while 循环 while ...
随机推荐
- [Java读书笔记] Effective Java(Third Edition) 第 3 章 对于所有对象都通用的方法
第 10 条:覆盖equals时请遵守通用约定 在不覆盖equals方法下,类的每个实例都只与它自身相等. 类的每个实例本质上都是唯一的. 类不需要提供一个”逻辑相等(logical equality ...
- spring cloud之docker微服务客户端注册eureka问题
正常我们起一个微服务注册到eureka他的实例id是默认这样的主机名称:服务名称:服务端口号, 如果配置eureka.instance.prefer-ip-address=true则实例id为主机Ip ...
- 保存图片控件上的图片到本地 出现错误:无法将类型为“System.Windows.Media.Imaging.BitmapFrameDecode”的对象强制转换为类型“System.Windows.Media.Imaging.BitmapImage”。
保存图片控件上的图片到本地 出现错误:无法将类型为“System.Windows.Media.Imaging.BitmapFrameDecode”的对象强制转换为类型“System.Windows.M ...
- Linux高级命令 ==> find、grep、sed、awk
一.find find命令用来在指定目录下查找文件.如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件.并且将查找到的子目录和文件全部进行显示. 语法 find path ...
- v-model语法糖在组件中的使用
原文地址 v-model 主要是用于表单上数据的双向绑定 一:基本 1:主要用于 input,select,textarea,component 2:修饰符: .lazy- 取代input监听chan ...
- Git分块提交文件
用 git add 命令,只不过要加上 -p 这个参数,带上要add的文件 先看这个文件的变化,修改,删除一行(换为空行),新增加一行. 下面就介绍如何只提交最后一个区块(hunk) sourcet ...
- hive中case命令
- Django-DRF(视图相关)
drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作.所以在django原有的django.views.View类基础上,drf封装了多个子类出来提供给我们使用. Django REST ...
- web赛题
@php反序列化漏洞https://www.freebuf.com/news/172507.html @巅峰极客wp https://www.anquanke.com/post/id/189142 @ ...
- 【VS开发】【C/C++开发】传递双重指针申请内存,典型用法
传递双重指针申请内存,典型用法 指针参数是如何传递内存的? 如果函数的参数是一个指针,不要指望用该指针去申请动态内存.如下示例中,Test函数的语句GetMemory(str, 100)并没有使str ...