【原创】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流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分 ...
随机推荐
- 全栈项目|小书架|服务器开发-Koa全局路由实现
什么是路由 路由就是具体的访问路径,指向特定的功能模块.一个api接口是由ip(域名)+端口号+路径组成,例如 :https://www.npmjs.com/package/koa-router就是一 ...
- flutter从入门到精通四
widget Flutter 从 React 中吸取灵感(如果有react的编程经验,会很容易理解flutter),通过现代化框架创建出精美的组件. 它的核心思想是用 widget 来构建你的 UI ...
- 在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存)
原文:在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...
- [NOIP11.1模拟赛]补番报告
Preface 昨天开始补某科学的超电磁炮S 感觉今天就好了点,炮姐赛高 T1 一开始一直想欧拉定理&ex欧拉定理,结果估计70分,数组开小了GG,看了正解发现是我学傻了 T2 一看就是数据结 ...
- Java 面向对象_多态
多态图解 代码中体现多态性 父类名称 对象名 = new 子类名称(); or 接口名称 对象名 = new 实现类名称(); // 父类 public class Father { public v ...
- .net core的startup中配置读取
public class Startup { public Startup(IHostingEnvironment env) { Configuration = new ConfigurationBu ...
- 监听iframe加载完成
用 @load="loading" 在Vue里面写了一个界面,有一个iframe标签, iframe加载其他网站, <iframe @load="loading&q ...
- [LeetCode] 234. 回文链表 ☆(翻转链表)
描述 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2输出: false示例 2: 输入: 1->2->2->1输出: true 进阶:你能否用 O(n) 时间复杂 ...
- Redis for C#
ServiceStack.Redis 初识Redis时接触到的.Net-Redis组件是 ServiceStack.Redis,其V3系列的最新版本是:ServiceStack.Redis.3.9.2 ...
- PAT1025
这道题是照着晴神的来敲,但是自己技术太渣,中间还是出现了不少问题. 1.学习到排序的做法,利用algorithm库的sort(begin,end,cmp),自己按照题目要求来完成cmp的编写 可能经常 ...