go语言的流程控制主要有if , for和switch。

if else(分支结构)

go语言的if判断:

func main() {
score:=65
if score>=90{
fmt.Println("A")
}else if score>=80{
fmt.Println("B")
}else{
fmt.Println("C")
}
}

需要注意的两点:

1. 表达式不可以使用 ()

2. 起始花括号必须紧跟表达式后面,不可以另起一行

除此之外,if 判断写法还有另一种写法:

func main() {
if score:=65; score>=90{
fmt.Println("A")
}else if score>=80{
fmt.Println("B")
}else{
fmt.Println("C")
}
  fmt.Println(score) // 报错,获取不到score
}

这种写法是把变量的定义写在表达式里了,这样写的作用是把变量定义在了局部。

for(循环结构)

for循环结构与其他语言也差不多:

for 初始语句;条件表达式;结束语句{
循环体语句
}

需要注意:

1. for后面不可以加 ()

2.花括号与if中的一样,不可以另起一行

例子:

func main() {
for i:=0;i<10;i++{
fmt.Println(i)
}
}

for循环的初始语句可以被忽略,但是初始语句后的分号必须要写,例如:

func main() {
i:=0
for ;i<10;i++{
fmt.Println(i)
}
}

for循环的初始语句和结束语句都可以省略,例如:

func main() {
i:=0
for i<10{
fmt.Println(i)
i++
}
}

switch case

基本用法:

func main() {
week:=3
switch week {
case 0:
fmt.Println("周日")
case 1:
fmt.Println("周一")
case 2:
fmt.Println("周二")
case 3:
fmt.Println("周三")
case 4:
fmt.Println("周四")
case 5:
fmt.Println("周五")
default:
fmt.Println("周六")
}
}

每个switch只能有一个default

一个分支可以有多个值,多个case值中间使用英文逗号分隔:

func main() {
num:=1
switch num {
case 1,3,5,7,9:
fmt.Println("这是奇数")
case 2,4,6,8,0:
fmt.Println("这是偶数")
default:
fmt.Println(num)
}
}

也可以把赋值放在switch里:

func main() {
switch num:=1; num {
case 1,3,5,7,9:
fmt.Println("这是奇数")
case 2,4,6,8,0:
fmt.Println("这是偶数")
default:
fmt.Println(num)
}
}

分支还可以使用表达式,这时候switch语句后面不需要再跟判断变量。例如:

func main() {
score:=90
switch {
case score>=90:
fmt.Println("优秀")
case score>=80:
fmt.Println("良好")
case score>=60:
fmt.Println("及格")
}
}

fallthrough 可以执行满足条件的case的下一个case:

func main() {
b:=true
switch b {
case true:
fmt.Println(1)
fallthrough
case false:
fmt.Println(2)
}
}

如上,不加 fallthrough 只打印 1,加上 fallthrough 打印 1 和 2

Go语言流程控制(六)的更多相关文章

  1. 04. Go 语言流程控制

    Go 语言流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go 语言的常用流程控制有 if 和 for,而 switch 和 ...

  2. C语言--流程控制

    一.流程控制 1.顺序结构 *默认的流程结构,按照书写顺序执行每一条语句 2.选择结构 *对给定的条件进行判断,再根据判断结果来决定执行那一段代码 3.循环结构 *在给定条件成立的情况下,反复执行某一 ...

  3. 9. Go语言—流程控制

    一.流程控制语法 if condition_1{ }else if condition_2{ }else if condition_3{ }else{ } 二.switch分支 package mai ...

  4. Go语言( 流程控制)

    流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码.降低重复代码而生的结 ...

  5. Go语言 - 流程控制 if else | for | switch case

    流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制: if | for | switch | goto// switch ...

  6. 07-C语言流程控制if、switch

    目录: 一.流程控制 条件分支 if else 二.流程控制 开关分支 switch 回到顶部 一.流程控制 条件分支 1.语法格式:if(表达式1){ //表达式1为真(非0时),执行的语句部分. ...

  7. Go语言流程控制

    1.条件语句 几个注意点和C#不一样的. { } else { } ① 条件语句不需要使用括号将条件包含起来 a<5 ,C#必须有() ②无论语句体内有几条语句,花括号{}都是必须存在的:C#如 ...

  8. C语言流程控制

    顺序结构 顺序结构是最常用的结构,即从上到下的执行语句. int num=5; num++; num=13; 条件结构 条件结构是当表达式为真的时候执行语句块,C语言提供了两种条件结构 if...el ...

  9. [C语言]流程控制, 复合赋值, 优先级, 循环控制

    ---------------------------------------------------------------------------------------- //单一判断 ) { ...

随机推荐

  1. 日照学习提高班day4测试

    A 思路: 一看到这个题,他不仅要求输出字典序最小的串,还要满足两两不重复,所以我们可以先输出ababab...什么的,最后缀上要求的k-2种字母 坑点: 当然这样想是不完全的!该题是拥有许多特殊情况 ...

  2. Sublime Text 3 全程详细图文使用教程

    一. 前言 使用Sublime Text 也有几个年头了,版本也从2升级到3了,但犹如寒天饮冰水,冷暖尽自知.最初也是不知道从何下手,满世界地查找资料,但能查阅到的资料,苦于它们的零碎.片面,不够系统 ...

  3. 进程间通信之管道--pipe和fifo使用

    匿名管道pipe 函数原型: #include <unistd.h> int pipe(int fildes[2]); 参数说明 fildes是我们传入的数组,也是一个传出参数.filde ...

  4. [CSP-S模拟测试]:任务分配(最短路+贪心+DP)

    题目传送门(内部题149) 输入格式 每个测试点第一行为四个正整数$n,b,s,m$,含义如题目所述. 接下来$m$行,每行三个非负整数$u,v,l$,表示从点$u$到点$v$有一条权值为$l$的有向 ...

  5. [题解] [bzoj2622] 深入虎穴

    题解 题解 考虑到正着跑不好想, 我们尝试反向跑 以每个终点作为起点, 维护每个点的最小值和次小值(最小的被老虎ban掉了) 转移的时候用当前点的次小值去更新其所连的点的最小值和次小值 由于最小的次小 ...

  6. CentOS 安装 Mongodb详解 --- 有Linux基础

    安装包:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.1.tgz 安装过程 安装pstree小工具,以及其使用 关闭 ...

  7. 一、基础篇--1.1Java基础-Java运算符优先级

    在一个表达式中可能包含多个有不同运算符连接起来的.具有不同数据类型的数据对象:由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结 ...

  8. MySQL 插件之 连接控制插件(Connection-Control)

    目录 插件介绍 插件安装 插件配置 插件介绍 MySQL 5.7.17 以后提供了Connection-Control插件用来控制客户端在登录操作连续失败一定次数后的响应的延迟.该插件可有效的防止客户 ...

  9. 测试的sql

    幼教视频全部 '''sql中需传的参数为:phone_no,phone_no(当前登录账号),cid(视频分类),video_type(1 幼教视频, 2 合作方视频,3校方视频),del_flag( ...

  10. 自定义View绘制简单的圆环的实现

    package com.loaderman.mywave; import android.content.Context; import android.graphics.Canvas; import ...