Go语言基础(三)

一、if流程控制

二、for流程控制

三、switch case

四、goto跳转指定标签


一、if流程控制

Go语言中最常用的流程控制iffor,而switchgoto主要是为了简化代码,降低重复代码而生的结构,属于扩展类的流程控制。

1、if条件判断

package mainimport "fmt"func main(){age := 19if age > 18 {fmt.Println("澳门首家上线赌场开业了!")} else {fmt.Println("改写暑假作业啦!")}
}

2、多个判断条件

package mainimport "fmt"func main(){age := 19if age > 35 {fmt.Println("人到中年!")} else if age > 18 {fmt.Println("青年!")} else {fmt.Println("好好学习!")}
}

3、if语句的特殊用法

package mainimport "fmt"func main(){// 此时age的作用域只在if判断语句中生效。if age := 19; age > 18 {fmt.Println("澳门首家上线赌场开业了!")} else {fmt.Println("改写暑假作业啦!")}
}

二、for流程控制

1、标准循环

for循环的基本格式如下:

for 初始语句;条件表达式;结束语句{循环体语句
}

举个例子:

package mainimport "fmt"func main(){for i := 0; i < 10; i++ {fmt.Println(i)}
}

for循环的初始语句可以省略,但是初始语句后面的分号必须要写,比如:

package mainimport "fmt"func main(){var i = 0for ; i < 10; i++ {fmt.Println(i)}
}

for循环的初始语句和结束语句都可以省略,例如:

package mainimport "fmt"func main(){var i = 0for i < 10 {fmt.Println(i)i++}
}

2、无限循环

for {循环体语句
}

for循环可以通过break、goto、return、panic语句强制退出循环。

break强制退出循环:

package mainimport "fmt"func main(){for i := 1; i < 10; i++ {// 当i=5就跳出循环if i == 5 {break}fmt.Println(i)}fmt.Println("over")
}

continue跳过本次循环:

3、for range键值循环

Go语言中可以使用for range遍历数组、切片、字符串、map及通道,通过for range遍历的返回值有以下规律:

a、数组、切片、字符串返回索引与值

b、map返回键和值

c、通道只返回通道内的值

package mainimport "fmt"func main() {s := "Hello河南!"for i, v := range s {fmt.Printf("%d %cn", i, v)}
}
// 0 H
// 1 e
// 2 l
// 3 l
// 4 o
// 5 河
// 8 南
// 11 !
// 从输出结果可以看出一个汉字占3个字节

4、小练习——打印九九乘法表

package mainimport "fmt"func main(){for i := 1; i < 10; i++ {for j := 1; j <= i; j++ {fmt.Printf("%dx%d=%dt", j, i, j*i)}fmt.Println()}
}

三、Switch case

使用switch语句方便对大量的值进行条件判断:

package mainimport "fmt"func main(){var n = 5if n == 1 {fmt.Println("大拇指")} else if n == 2 {fmt.Println("食指")} else if n == 3 {fmt.Println("中指")} else if n == 4 {fmt.Println("无名指")} else if n == 5 {fmt.Println("小拇指")} else {fmt.Println("无效的数字")}
}

接下来使用switch简化上面代码:

package mainimport "fmt"func main(){var n = 5switch n {case 1:fmt.Println("大拇指")case 2:fmt.Println("食指")case 3:fmt.Println("中指")case 4:fmt.Println("无名指")case 5:fmt.Println("小拇指")default:fmt.Println("无效的数字")}
}

switch中的一个分支可以有多个值,多个case值中间使用英文逗号分隔。

package mainimport "fmt"func main(){switch n := 7; n {case 1, 3, 5, 7, 9:fmt.Println("奇数")case 2, 4, 6, 8:fmt.Println("偶数")}
}

分支还可以使用表达式,例如:

package mainimport "fmt"func main(){age := 30switch {case age < 25:fmt.Println("好好学习吧")case age > 25 && age < 35:fmt.Println("好好工作吧")case age > 60:fmt.Println("好好享受吧")default:fmt.Println("活着真好!")}
}

fallthrough语法可以执行满足条件的case的下一个case,为了兼容C语言中case设计的。

package mainimport "fmt"func main(){s := "a"switch {case s == "a":fmt.Println("a")fallthroughcase s == "b":fmt.Println("b")case s == "c":fmt.Println("c")default:fmt.Println("...")}
}

四、goto跳转到指定标签

goto语句通过标签进行代码间无条件跳转,goto语句可以快速跳出循环、避免重复,Go语言中使用goto简化一些代码的实现过程,例如双层嵌套的for循环要退出时:

package mainimport "fmt"func main(){for i := 0; i < 10; i++ {for j := 0; j < 10; j++ {if j == 2{goto breakTag}fmt.Println("%v-%vn", i, j)}}
breakTag:fmt.Println("结束for循环")
}

当然也有别的办法可以跳出多层for循环:

package mainimport "fmt"func main(){var flag = falsefor i := 0; i < 10; i++ {for j := 0; j < 10; j++ {if j == 2{flag = truebreak}fmt.Printf("%d-%dn", i, j)}if flag {break}}
}

我是尾巴

每日一句毒鸡汤:

人之所以活得糟糕,百般不顺,并不是某个选择出现了问题,而是一个人每天的状态注定了他最终可选择的范围,而一个人的性格注定了他在关键时刻会做出怎样的选择。

本次推荐:

程序员工具箱:

在线工具​tool.lu

继续加油~

语言编奇数和合偶数和_Go语言基础(三)相关推荐

  1. 语言编奇数和合偶数和_不同的语言怎样求解奇数和?

    对于如何实现求解1到100的奇数和,这里我给出了java和matlab的编程,两种编程的思想差不多但是在细微上有些许偏差.两个编程语言都采用的是循环.条件语句来实现. Java.matlab学习是一个 ...

  2. [PTA]C语言 判断奇数和偶数

    输入一个整数,判断该数是奇数还是偶数. 输入格式: 输入整数n. 输出格式: 如果该数是奇数就输出"odd",偶数就输出"even"(输出不含双引号). 输入样 ...

  3. c语言 一个数组奇数左边 偶数右边,C语言设计实验报告(第七次)

    姓名:龚政 实验地点:寝室 实验时间:2020.6.1 实验项目:8.3.1指针基础及指针运算:8.3.2数据交换:8.3.3字符串反转及字符串连接:8.3.4数组元素奇数偶数排列 实验目的与要求 加 ...

  4. 判断奇数还是偶数【c语言】

    要求:判断一个数是奇数还是偶数 法1:三目运算符实现 int main() {int num = 5;num % 2 == 0 ? printf("yes") : printf(& ...

  5. c语言奇数正偶数负,C语言二级考试练习题循环控制结构(二)

    <C语言二级考试练习题循环控制结构(二)>由会员分享,可在线阅读,更多相关<C语言二级考试练习题循环控制结构(二)(21页珍藏版)>请在人人文库网上搜索. 1.1)具有以下程序 ...

  6. r语言error in match.fun(fun) :_Go语言200行写区块链源代码分析

    Github上有一个Repo,是一个使用Go语言(golang),不到200行代码写的区块链源代码,准确的说是174行.原作者起了个名字是 Code your own blockchain in le ...

  7. C语言编棱,2009计算机二级C语言:C语言棱形图案写法

    2009计算机二级C语言:C语言棱形图案写法 分类:计算机等级 | 更新时间:2016-07-07| 来源:中华网考试 #include #include using namespace std; # ...

  8. go语言的iota是什么意思_go语言基础之iota枚举

    1.iota (在常量的时候,当成枚举使用) 示例1 package main import "fmt" func main() { //1.iota常量自动生成器,每个一行,自动 ...

  9. c++语言编的小游戏,用C++语言编写小游戏系统(可读取文件)

    #include #include #include #include #include #include #include #include #include using namespace std ...

  10. C语言-实现对单循环链表中奇数和偶数结点的移动(前面奇数结点后面偶数结点)

    单循环链表是C语言中比较常见的一种链式储存结构. 相较于普通的单链表,其特点就在于单循环链表的尾指针指向的是头结点. 即: 1.单链表 2. 单循环链表的有点就在于方便访问第一个结点,还方便访问最后一 ...

最新文章

  1. 业界丨一文看懂AI人才百万美元年薪因何而来?
  2. iOS友盟推送发送失败
  3. 数据结构与算法笔记(八)—— 插入排序
  4. php 反射原理,PHP反射机制详解
  5. SAP Spartacus cx-table加了cxFocus指令后的测试效果
  6. SAP CRM WebClient UI的on_new_focus应该怎么理解
  7. php搜索数据库设计,PHP数据库搜索功能设计
  8. 查看某个分区之前所有的数据_腾讯大数据面试真题汇总
  9. python对象属性是与数据有关的项目_python之对象产生,属性(定义的值)的查找原则,对象绑定关系...
  10. java需要知道哪些英语单词_70个学习JAVA必背的英语单词,了解下
  11. 小写和大写开头的英文名字  internet 和Internet在意思上有何重要区别?
  12. java swing 实现鼠标滑轮聚焦缩放图片
  13. 刷题笔记之十 (小易的升级之路+找出字符串中第一个只出现一次的字符+洗牌+MP3光标位置)
  14. 心醉花海,芳菲春色入梦来
  15. 磁悬浮惯性动量轮技术_第2章_磁悬浮惯性动量轮的总体结构
  16. cesium画飞线_Cesium+earthSD实现相机飞行动画
  17. NFS搭建与自动挂载
  18. PCIe基础知识及Xilinx相关IP核介绍
  19. 字符串转换为整数”123“-123
  20. 外挂,一个因“快感”而崛起的暴利行业

热门文章

  1. nginx编译和调试
  2. codis实现redis分片和在线扩展
  3. [TWAIN] 3句话总结TWAIN在Windows Server 2008 R2 SP1的使用
  4. 10.Hello World 的 Java 项目创建和项目配置文件讲解
  5. 个人学习进度(第四周)
  6. python学习笔记16--javascript总结
  7. SQL server 表数据改变触发发送邮件
  8. 经典算法题随机从连续的100个不重复数中取出100个不重复随机数
  9. IE调试网页之二:F12 开发人员工具入门 (Windows)
  10. 算法-获取质数(素数)数组