【原创】go语言学习(四)流程控制
目录:
1、if else语句块
2、for语句
3、switch语句
if else语句块
1、基本语法
if condition {
//do something
} if statement; condition {
} if condition {
//do something
} else if condition {
//do something
} else {
//do something
}
2、练习一
// 奇偶数
func testIf1() {
num := 10
// var num int
// num = 10
if num%2 == 0 {
fmt.Printf("num:%d is even\n", num)
} else {
fmt.Printf("num:%d is odd\n")
}
}
3、练习二
// if.. else if 可赋值
func testIf3() {
// num := 10
// var num int
// num = 10 // if语句块中定义num, num会在语句块中销毁
if num := 11; num%2 == 0 {
fmt.Printf("num %d is even\n", num)
} else {
fmt.Printf("num:%d is odd\n", num)
} // 为空
fmt.Printf("num=%d\n", num)
}
4、练习三
// 方法
func getNum() int {
return 10
} func testIf4() {
// if语句块中定义num, num会在语句块中销毁
if num := getNum(); num%2 == 0 {
fmt.Printf("num %d is even\n", num)
} else {
fmt.Printf("num:%d is odd\n", num)
} // 为空
fmt.Printf("num=%d\n", num)
}
for语句
1、Go语⾔言中只有⼀一种循环 for
for initialisation; condition; post { }
2、练习一
func testFor1() { // for块中定义,结束时i销毁
//for i := 1; i <=10 ; i++ {
// fmt.Printf("i=%d\n",i)
//} // 不销毁
var i int
for i = 1; i <= 10; i++ {
fmt.Printf("i=%d\n", i)
} fmt.Printf("final:i=%d\n", i)
}
3、练习二
// break 跳出循环 continue
func testFor2() {
var i int
for i = 1; i <= 10; i++ {
if i > 5 {
break
// continue
}
fmt.Printf("i=%d\n", i)
} fmt.Printf("final:i=%d\n", i)
}
4、练习三
// continue结束本次循环,跳到下次循环
func testFor3() {
var i int
for i = 1; i <= 10; i++ {
if i%2 == 0 {
continue
}
fmt.Printf("i=%d\n", i)
} fmt.Printf("final:i=%d\n", i)
}
// 二种写法
func testFor4() {
//var i int
//i = 1;
i := 1
for i <= 10 {
fmt.Printf("i=%d\n", i)
i = i + 2
} fmt.Printf("final:i=%d\n", i)
} // 三种写法
func testFor5() {
//var i int
//i = 1;
i := 1
for i <= 10 {
fmt.Printf("i=%d\n", i)
i = i + 2
} fmt.Printf("final:i=%d\n", i)
}
5、练习四
// 多行赋值
func testMultiSign() {
//var a int
//var b string
//var c int
a, b, c := 10, "hello", 100 fmt.Printf("a=%d b=%s c=%d\n", a, b, c)
} // 多条件for
func testFor6() {
for no, i := 10, 1; i < 10 && no <= 19; i, no = i+1, no+1 {
fmt.Printf("%d * %d = %d", i, no, i*no)
}
}
5、练习五
// 无限循环for
func testFor7() {
for {
fmt.Printf("hello\n")
}
}
switch语句
1、case语句
func testIf() {
var a int = 2
if a == 1 {
fmt.Printf("a=1\n")
} else if a == 2 {
fmt.Printf("a=2\n")
} else if a == 3 {
fmt.Printf("a=3\n")
} else if a == 4 {
fmt.Printf("a=4\n")
} else {
fmt.Printf("a=5\n")
}
}
func testSwitch() {
var a int = 2
switch a {
case 1:
fmt.Printf("a=1\n")
case 2:
fmt.Printf("a=2\n")
case 3:
fmt.Printf("a=3\n")
case 4:
fmt.Printf("a=4\n")
case 5:
fmt.Printf("a=5\n")
default:
fmt.Printf("a=??\n")
}
}
2、写法二
func getValue() int {
return 6
} // 写法二
func testSwitch2() {
switch a := getValue(); a {
case 1:
fmt.Printf("a=1\n")
case 2:
fmt.Printf("a=2\n")
case 3:
fmt.Printf("a=3\n")
case 4:
fmt.Printf("a=4\n")
case 5:
fmt.Printf("a=5\n")
default:
fmt.Printf("a=??\n")
}
}
3、练习一
func testSwitch3() {
switch a := getValue(); a {
case 1, 2, 3, 4, 5:
fmt.Printf("a>=1 and a<=5\n")
case 6, 7, 8, 9, 10:
fmt.Printf("a>=6 and a<=10\n")
default:
fmt.Printf("a > 10\n")
}
}
4、练习二
func testSwitch4() {
var num = 60
switch {
case num >= 0 && num <= 25:
fmt.Printf("a>=0 and a<=25\n")
case num > 25 && num <= 50:
fmt.Printf("a > 25 and a <=50\n")
case num > 50 && num <= 75:
fmt.Printf("a > 50 and a <= 75\n")
case num > 75 && num <= 100:
fmt.Printf("a > 75 and a <= 100\n")
default:
fmt.Printf("invalid a = %d \n", num)
}
}
5、fallthrough 穿透case块,执行下一个case块
// fallthrough 穿透case块,执行下一个case块,执行代码
func testSwitch5() {
var num = 60
switch {
case num >= 0 && num <= 25:
fmt.Printf("a>=0 and a<=25\n")
case num > 25 && num <= 50:
fmt.Printf("a > 25 and a <=50\n")
case num > 50 && num <= 75:
fmt.Printf("a > 50 and a <= 75\n")
fallthrough
case num > 75 && num <= 100:
fmt.Printf("a > 75 and a <= 100\n")
default:
fmt.Printf("invalid a = %d \n", num)
}
}
6、打印99乘法表
// 打印 99乘法表
func testMulti() {
//1*1=1
//1*2=2 2*2=4
//1*3=3 2*3=6 3*3=9 for i := 1; i < 10; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d * %d = %d", j, i, j*i)
}
fmt.Println()
}
}
【原创】go语言学习(四)流程控制的更多相关文章
- Go语言学习笔记-流程控制(二)
Go语言流程控制 字典类型Map 1.上节遗留:map字典类型 变量声明:var myMap map[string] PersonInfo 其中,myMap是变量名,string是键的类型,Perso ...
- GO语言学习——Go语言基础之流程控制一
Go语言基础之流程控制 if else(分支结构) package main import "fmt" // if条件判断 func main(){ // age := 19 // ...
- Go语言基础之流程控制
Go语言基础之流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用额流程控制有if和for,而switch和goto主要是为了简化代 ...
- Go语言 数据类型,流程控制
Go语言 数据类型,流程控制 人生苦短,Let's Go ! package main // 必须要有一个main包 import "fmt" func main() { fmt. ...
- GO学习-(7) Go语言基础之流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...
- [原创]Scala学习:流程控制,异常处理
1.流程控制 1)do..while def doWhile(){ var line="" do{ line = readLine() println("readline ...
- 1.4 Go语言基础之流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...
- 第三章 go语言 程序的流程控制
程序的流程控制主要包括三种不同的结构,分别是顺序结构.选择结构和循环结构. ² 顺序结构最为简单,程序执行时,按照语句的顺序自上而下依次执行. ² 选择结构是根据条件表达式的结果选择执行某些语句. ² ...
- C 碎片四 流程控制
前面介绍了程序中用到的一些基本要素(常量,变量,运算符,表达式),他们是构成程序的基本成分,下面将介绍C语言中流程控制的三种结构:顺序结构.分支结构.循环结构 一.顺序结构 顺序结构的程序设计是最简单 ...
- JavaScript学习笔记——流程控制
javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分 ...
随机推荐
- luogu P4887 莫队二次离线
珂朵莉给了你一个序列$a$,每次查询给一个区间$[l,r]$ 查询$l≤i<j≤r$,且$ai⊕aj$的二进制表示下有$k$个$1$的二元组$(i,j)$的个数.$⊕$是指按位异或. 直接暴力莫 ...
- 封装函数(累计和、K型、金字塔)
// 假设有个函数,只要传参数进去,就能统计累加的结果 function test($n){ if($n==1){ return 1; } return $n+test($n-1);}echo tes ...
- CentOS7安装firewall防火墙
CentOS7之后 , 系统已经推荐了firewall防火墙 , 而不是iptables 主要 : firewall 和 iptables冲突 , 需要禁用其中一个. #停止iptables服务 sy ...
- Python初识对象
一 楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, ...
- iOS - Scenekit3D引擎初探之 - 导出DAE文件(3Dmax为例)
DAE文件格式是3D交互文件格式,一般用于多个图形程序之间交换数字数据,Autodesk专有并在COLLADA(COLLAborative Design Activity)基础上改进创建的XML框架的 ...
- vue复制textarea文本域内容到粘贴板
vue实现复制内容到粘贴板 方案:找到textarea对象(input同样适用),获取焦点,选中textarea的所有内容,并调用document.execCommand("copy&q ...
- linux命令详解
命令语法介绍 命令 [参数] [文件或路径] rm -f /etc/hosts 注:命令和参数至少一个空格(可以多个连着写) 路径不带空格 ...
- Linux命令——finger
简介 查询并显示系统用户的相关信息. 最小化安装Linux可能没有改名了,需要单独安装. RHEL/CentOS yum install finger* -y Ubuntu apt-get inst ...
- 190906mysql常用语法
1.创删数据库: create database mydb; 复杂一点可以设置字符集和校对规则:create database mydb character set gbk collate gbk_c ...
- 某公司git代码管理,到如何上线