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 > ...
随机推荐
- 基于redis6搭建集群
前言 系统版本:CentOS 7 redis版本:redis6.2.4,官方tar.gz包 两台服务器: 172.50.11.11 端口7002.7004.7006 172.50.12.11 端口70 ...
- AI绘画StableDiffusion:云端在线版免费使用笔记分享-Kaggle版
玩AI绘画(SD),自己电脑配置不够?今天给大家介绍一下如何baipiao在线版AI绘画StableDiffusion. Kaggle 是世界上最大的数据科学社区,拥有强大的工具和资源,可帮助您实现数 ...
- 如何通过API接口获取1688的商品详情
1688是中国最大的B2B电商平台之一,吸引了大量的国内外买家和卖家,提供了丰富的商品资源.许多开发者和企业想要通过API接口获取1688商品的详细信息,以便于进行商品数据分析.价格监控等工作.在本文 ...
- .NET6.0实现IOC容器
.NET6.0实现IOC容器 IOC的作用这里省略-只对如何使用进行说明. 1. 创建一个.NET6应用程序 这里使用 .NET6.0 WebAPI 应用 2. 声明接口 public interfa ...
- 本地项目上传到Git仓库
1. 进入项目主目录,打开Git Bash,执行以下命令,将项目变为一个git管理的项目: $ git init 执行成功后,会在项目根目录生成一个.git的文件夹. 可以执行以下命令查看项目状态: ...
- Hutool,一个超好用的 Java 工具类库
一.简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". ...
- sublime运行php文件
sublime 运行 php 文件 使用 sublime 打开一个php文件 然后 Tools -> Build System -> New Build System 将以上打开的文件内容 ...
- 使用GPU搭建支持玛雅(Maya)和Adobe AI,DW,PS的职校云计算机房
背景 学校为职业学校,计算机教室需要进行Maya.Adobe Illustrator.Adobe Dreamweaver.Adobe PhotoShop等软件的教学.每个教室为35用户.资源需求为4核 ...
- 使用MySQL存储过程提高数据库效率和可维护性
MySQL 存储过程是一种强大的数据库功能,它允许你在数据库中存储和执行一组SQL语句,类似于编程中的函数.存储过程可以大幅提高数据库的性能.安全性和可维护性.本文将详细介绍MySQL存储过程的使用. ...
- getchar()和putchar()
#include <stdio.h> #include <stdlib.h> int main() { char ch; /*.putchar() a. putchar函数的格 ...