Go笔记(4)-流程控制
5.Go语言流程控制
程序流程的控制结构一般有三种,顺序结构,选择结构,循环结构
(1)选择结构
if语句
- if流程控制与其他语言的if流程控制基本相同
package main
import "fmt"
/*
1、定义一个整数
2、通过if语句进行比较
*/
func main() {
//1、定义一个整数
a := 15
//2、通过if语句进行比较
if a > 20 {
fmt.Println("a>20")
}
if a > 10 {
fmt.Println("a>10")
}
}
if-else
package main
import "fmt"
/*
1、定义一个分数score
2、通过if else语句判断 >=90合格 90<=不合格
*/
func main() {
//1、定义一个分数score
var score int = 90
//2、通过if else语句判断 >=90合格 90<=不合格
if score >= 90 {
fmt.Println("你的成绩合格")
} else {
fmt.Println("你的成绩不合格")
}
}
if嵌套
- go语言中没有java的if-else if -else 语句,但是if语句可以嵌套
package main
import "fmt"
/*
通过键盘输入两次密码进行校验
1、定义三个变量 x,y,password
2、x,y为键盘输入的值
3、通过if嵌套语句进行验证
*/
func main() {
//1、定义三个变量 x,y,password
var x, y, pwd int
pwd = 20230107
fmt.Println("请输入您的密码:")
//2、x,y为键盘输入的值
fmt.Scanln(&x)
if pwd == x {
fmt.Println("请再次输入您的密码确认")
fmt.Scanln(&y)
//3、通过if嵌套语句进行验证
if pwd == y {
fmt.Println("登录成功")
} else {
fmt.Println("密码验证失败")
}
} else {
fmt.Println("密码验证失败")
}
}
Switch语句
- Switch语句的每一个case分支都是唯一的,从上往下执行直到找到匹配项
- 在go语言中,匹配项之后不需要+break,go语言默认在case的最后自带break语句
package main
import "fmt"
func main() {
//1、定义一个变量score 成绩为66
var score int = 60
//2、通过 Switch语句进行判断 90==A 80==B 70-50==C
switch score {
case 90:
fmt.Println("A")
case 80:
fmt.Println("B")
case 70, 50, 60:
fmt.Println("C")
//3、当所有条件不满足执行default语句
default:
fmt.Println("D")
}
}
- 在go语言中,case的匹配项可以是表达式
package main
import "fmt"
func main() {
//1、定义一个成绩score
var score int
//2、通过键盘输入成绩
fmt.Println("请输入一个数:")
fmt.Scanln(&score)
//3、通过Switch条件判断
switch {
case score >= 90:
fmt.Println("您的成绩为A")
case score >= 80 && score < 90:
fmt.Println("您的成绩为B")
case score >= 60 && score > 0:
fmt.Println("您的成绩为C")
case score < 60 && score > 0:
fmt.Println("您的成绩不合格")
default:
fmt.Println("查询不到您的成绩") //因为成绩不能为负数
}
}
fallthrough贯穿switch语句
- switch默认情况下匹配成功后就不会执行其他case,如果我们需要执行后面的case,可以使用fallthrough穿透case。使用fallthrough 会强制执行后面的case语句,fallthrough 不会判断下一条case的表达式结果是否为true。
package main
import "fmt"
func main() {
var a bool = false
switch a {
case false:
fmt.Println("1,case条件为false")
fallthrough //进行穿透,依然会执行下一个case
case true:
fmt.Println("2,case条件为true")
}
}
- 有时候暴力穿透会影响程序,因此可以用break进行终止
package main
import "fmt"
func main() {
var a bool = false
switch a {
case false:
fmt.Println("1,case条件为false")
fallthrough //进行穿透
case true:
if a == false {
break //终止穿透
}
fmt.Println("2,case条件为true")
case false:
fmt.Println("false") //不会执行这里
}
}
(2)循环结构
for循环
- 同其他语言的for语句相同用法
- 可以使用break结束当前整个循环
- 可以使用continue结束当次循环
package main
import "fmt"
/*
for 条件的起始值;循环条件;控制变量自增或者自减
*/
func main() {
sum := 0 //计数
for i := 0; i <= 10; i++ {
sum += i
}
fmt.Println(sum)
}
Go笔记(4)-流程控制的更多相关文章
- 《Node.js In Action》笔记之流程控制
转向Javascript后,开始学习了node.js,选择的第一本书是<Node.js in Action> 将近一个月时间,断断续续看完,选几个点做下笔记 1.实现串行化流程控制 var ...
- 【原】Java学习笔记005 - 流程控制
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 程序的流程控制(流 ...
- Python学习笔记 - day4 - 流程控制
Python流程控制 Python中的流程控制主要包含两部分:条件判断和循环. Python的缩进和语法 为什么要在这里说缩进和语法,是因为将要学习的条件判断和分支将会涉及到多行代码,在java.c等 ...
- PL/SQL笔记(1)-流程控制,循环,异常,块
流程控制 1.If,then,else,elsif(不是elseif) ' then null; endif; 2.Case 简单case表达式: 搜索型Case表达式: 3.goto语句 begin ...
- C#学习笔记_04_流程控制
04_流程控制 程序的执行结构: 顺序结构 分支结构 循环结构 可以通过某些特定的控制语句来控制代码的执行结构 分支流程控制 if else 基本语法 可以只有if没有else,但是不能没有if只有e ...
- PYTHON 学习笔记2 流程控制工具以及函数定义、匿名函数
前言 在上一节的学习中.已经介绍了几种基本类型.包括字符串的定义,以及字符串中索引.切片.字符串拼接的使用方法.以及基本的整形数据运算.一些之前都没有了解过的运算符.比如 ** 乘方 //整数除法等. ...
- JavaSE学习笔记03流程控制
Java流程控制 1.顺序结构 java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句往下执行. 顺序结构是最简单的算法结构,它是任何一个算法都离不开的一种基本算法结构. 2. 选择结构 ...
- 《疯狂Kotlin讲义》读书笔记4——流程控制
流程控制 与Java类似,Kotlin同样提供了两种基本的流程控制结构:分支结构和循环结构. Kotlin提供了 if 和 when 两种分支语句,其中 when 语句可以代替Java的switch语 ...
- 学习笔记-Java流程控制
学习来源: [狂神说Java]Java零基础学习视频通俗易懂_哔哩哔哩_bilibili Java流程控制 用户交互Scanner 获取用户的输入 基本语法 Scanner s = new Scann ...
- Java学习笔记五——流程控制
分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > ...
随机推荐
- Pythonre.compile:用于优化正则表达式匹配的工具
import re # Python re.compile的性能优势 # 相对于使用re.match和re.search等函数直接进行匹配,使用Python re.compile的优化方式可以带来更好 ...
- ubuntu20.4操作指令合集
每个指令前面尽量加上sudo,避免麻烦的权限问题 下载软件:sudo apt install 包名 开启/关闭防火墙(开启/关闭所有端口):sudo ufw enable/disable 防火墙状态: ...
- Java日志系列:日志门面JCL、SLF4J
目录 一.日志门面说明 二.JCL 使用 JCL 入门 JCL 原理 三.SLF4J 使用 配合自身简单日志实现(slf4j-simple) 配置logback日志实现 配置Log4J日志实现(需适配 ...
- 关于Word转PDF的几种实现方案
在.NET中,你可以使用Microsoft.Office.Interop.Word库来进行Word到PDF的转换.这是一个示例代码,但请注意这需要在你的系统上安装Microsoft Office. 在 ...
- 前端三件套系例之CSS——CSS3基础布局
文章目录 css基础布局 1.布局相关的标签 2.盒子模型 2-1 什么是盒子模型 2-2 margin外边距 2-3 padding内填充 2-4 案例 3.浮动(float) 3-1 什么是浮动 ...
- 执行SQL语句&存储过程的真正【神器】,不用ORM的全选它,比dapper好
支持.Net Core(2.0及以上)与.Net Framework(4.0及以上)(注意:升级了,可以覆盖到早期的.Net Framework4.0了,而且修复了数据库字段为Null时报错的问题,无 ...
- NFC and Contactless Technologies
NFC and Contactless Technologies NFC与无接触技术 NFC technology enables simple and safe two-way interactio ...
- threading 专递类对象
import threading class MyClass: def __init__(self, name): self.name = name def my_method(self): prin ...
- Python - 打断点以及如何查看
1.鼠标左键单击代码跟行号中间的地方会出现一个红点,这个就是断点. 2.点击Debug按钮,进入调试模式. 3.当代码运行到断点之前,所有关于变量的代码,都会出现运行的结果. 4.点击Step Int ...
- [GXYCTF 2019]Ping Ping Ping
题目就是ping,而且这还有一个查询窗口,就随便查询试试 ping了一下本地,发现没有什么很大的作用,给出了提示是php可以执行系统函数这就感到神奇了,就还是上网搜了搜 发现可以在查询IP后面进行拼接 ...