目录:

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语言学习(四)流程控制的更多相关文章

  1. Go语言学习笔记-流程控制(二)

    Go语言流程控制 字典类型Map 1.上节遗留:map字典类型 变量声明:var myMap map[string] PersonInfo 其中,myMap是变量名,string是键的类型,Perso ...

  2. GO语言学习——Go语言基础之流程控制一

    Go语言基础之流程控制 if else(分支结构) package main import "fmt" // if条件判断 func main(){ // age := 19 // ...

  3. Go语言基础之流程控制

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

  4. Go语言 数据类型,流程控制

    Go语言 数据类型,流程控制 人生苦短,Let's Go ! package main // 必须要有一个main包 import "fmt" func main() { fmt. ...

  5. GO学习-(7) Go语言基础之流程控制

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

  6. [原创]Scala学习:流程控制,异常处理

    1.流程控制 1)do..while def doWhile(){ var line="" do{ line = readLine() println("readline ...

  7. 1.4 Go语言基础之流程控制

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

  8. 第三章 go语言 程序的流程控制

    程序的流程控制主要包括三种不同的结构,分别是顺序结构.选择结构和循环结构. ² 顺序结构最为简单,程序执行时,按照语句的顺序自上而下依次执行. ² 选择结构是根据条件表达式的结果选择执行某些语句. ² ...

  9. C 碎片四 流程控制

    前面介绍了程序中用到的一些基本要素(常量,变量,运算符,表达式),他们是构成程序的基本成分,下面将介绍C语言中流程控制的三种结构:顺序结构.分支结构.循环结构 一.顺序结构 顺序结构的程序设计是最简单 ...

  10. JavaScript学习笔记——流程控制

    javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分 ...

随机推荐

  1. es6☞对象的解构赋值

    变量必须与属性同名 let {name, age} = {name: 'wang', age: 22}; console.log(name, age); //wang 22 let {name} = ...

  2. Jenkins 发邮件的Job

    Jenkins要做到构建失败的时候发送邮件,常规做法是加个全局的post failure,类似这样的代码 pipeline { agent any stages { stage('deploy') { ...

  3. C++复制构造函数,类型转换构造函数,析构函数,引用,指针常量和常量指针

    复制构造函数形如className :: className(const &)   /   className :: className(const className &)后者能以常 ...

  4. flask/app.py-add_url_rule源码分析

    之前分析route方法的时候,可以看到中间会调用add_url_rule方法,add_url_rule方法和route方法一样属于Flask这个类的. add_url_rule方法主要用来连接url规 ...

  5. linux操作常用命令

    此篇文章是根据自己经常使用的命令进行记录备忘,不断更新 防火墙(centos7) 永久开放某个端口号: firewall-cmd --zone=public --add-port=8080/tcp - ...

  6. 在iframe内页触发顶层页面body的blur事件

    //在iframe内页触发顶层页面body的blur事件. if (window != top) { $(document.body).click(function () { $(top.docume ...

  7. Android笔记(九) Android中的布局——框架布局

    框架布局没有任何定位方式,所有的控件都会摆放在布局的左上角. 代码示例: framelayout.xml <?xml version="1.0" encoding=" ...

  8. Mongodb数据存储优缺点

    相对于Mysql来说 在项目设计的初期,我当时有了这样的想法,同时也是在满足下面几个条件的情况下来选择最终的nosql方案的: 1.需求变化频繁:开发要更加敏捷,开发成本和维护成本要更低,要能够快速地 ...

  9. Linux安装java环境和maven

    安装OpenJDK软件包: apt-get install openjdk-8-jdk 查看版本信息java -version 则代表安装成功 安装maven可以使用自己本机下载好的mavan使用Xf ...

  10. MySQL分布式数据库架构:分库、分表、排序、分页、分组、实现教程

    MySQL分库分表总结: 单库单表 : 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 单库多表 : 随着用户数量的增加, ...