Golang - 流程控制

1. 选择结构

if else语句:

//package 声明开头表示代码所属包
package main import (
"io/ioutil"
"fmt"
) func main() {
//常量
const filename = "abc.txt" //读取文件
contens, err := ioutil.ReadFile(filename) // nil空
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("%s\n", contens)
} // ;后边直接去判断和处理了
if contens, err := ioutil.ReadFile(filename); err != nil {
fmt.Println(err)
} else {
fmt.Printf("%s\n", contens)
}
}

switch语句:

//package 声明开头表示代码所属包
package main import "fmt" //函数传入成绩,得到级别 ABC
func grade(score int) string {
//定义个空串
g := "" //switch语句
switch {
case score < 0 || score > 100:
g = "输入错误"
//隐式加了一个break,匹配到了就结束
//关键字fallthrough是继续往下跑
fallthrough case score < 60:
g = "F"
case score < 80:
g = "C"
case score < 90:
g = "B"
case score <= 100:
g = "A"
} return g
} func main() {
fmt.Println(
grade(0),
grade(59),
grade(60),
grade(82),
grade(99),
grade(100),
grade(-3),
)
} //F F C B A A F

2. 循环结构

for 语句:

//package 声明开头表示代码所属包
package main import (
"fmt"
"time"
) //1.无限死循环
func for1() {
for {
fmt.Println("爱天台,爱日耳曼战车")
//睡1秒
time.Sleep(1 * time.Second)
}
} //2.有限次循环
func for2() {
for i := 1; i < 11; i++ {
fmt.Println("爱天台,爱战车", i)
//睡眠
time.Sleep(500 * time.Millisecond)
}
} //3.if else
func for3() {
for i := 1; i < 11; i++ {
if i%5 == 0 {
fmt.Println("爱阿根廷")
} else if i%2 == 1 {
fmt.Println("更爱战车")
} else {
fmt.Println("最爱是天台")
}
time.Sleep(500 * time.Millisecond)
}
} func main() {
//for2()
for3()
}

range 语句:

//package 声明开头表示代码所属包
package main import "fmt" func main() {
s := "abc" //1.接收了下标,通过下标取值
for i := range s {
fmt.Printf("下标=%d,值=%c\n", i, s[i])
} //2.直接接收下标和元素值
for i, c := range s {
fmt.Printf("下标2=%d,值2=%c\n", i, c)
} //3.忽略下标
for _, c := range s {
fmt.Printf("值=%c\n", c)
}
} //下标=0,值=a
//下标=1,值=b
//下标=2,值=c
//下标2=0,值2=a
//下标2=1,值2=b
//下标2=2,值2=c
//值=a
//值=b
//值=c

3. 跳转语句

break和continue

//package 声明开头表示代码所属包
package main import "fmt" func main() {
for i :=0; i<5; i++{
if 2==i{
//break
continue
}
fmt.Println(i)
}
} //0
//1
//3
//4

goto:可以跳转到指定的位置运行,注意是跳转到当前函数内

//package 声明开头表示代码所属包
package main import "fmt" func main() {
for i :=0; i<5; i++{
fmt.Println(i) //关键字goto
goto LABEL
}
fmt.Println("程序结束")
LABEL:
fmt.Println("程序over")
} //0
//程序over

Golang - 流程控制的更多相关文章

  1. Golang的流程控制

    流程控制 条件语句 例: var b bool = true if b{ fmt.Print("b是True") }else{ fmt.Print("b是false&qu ...

  2. golang(3):strings和strconv使用 & 时间和日期类型 & 指针类型 & 流程控制 & 函数

    strings和strconv使用 . strings.HasPrefix(s string, prefix string) bool: // 判断字符串s是否以prefix开头 . . string ...

  3. golang之流程控制(注意点)

    Go在流程控制方面特点如下: 没有do和while循环,只有一个广义的for语句 switch语句灵活多变,还可以用于类型判断 if语句和switch语句都可以包含一条初始化子语句 break语句和c ...

  4. golang基础之三-字符串,时间,流程控制,函数

    strings和strconv的使用 strings strings.HasPrefix(s string,preffix string) bool:判断字符串s是否以prefix开头 stirngs ...

  5. [golang note] 流程控制

    流程控制 • 流程控制语句作用 ▪ 选择:根据条件跳转到不同的执行序列. ▪ 循环:根据条件反复执行某个序列. ▪ 跳转:据条件返回到某执行序列. • 流程控制语句类型 ▪ 条件语句:关键字为if.e ...

  6. golang recover panic 流程控制的可达与不可达

    --------------------------流程控制可达----------------------------- package main import "fmt" fu ...

  7. golang学习笔记(二):流程控制

    欢迎访问我的博客和github! 今天咱们把烦人的事情丢一丢,继续来学习go的基础知识. 这篇文章记录go语言的流程控制和更多类型. 流程控制 for Go 只有一种循环结构:for 循环. 基本的 ...

  8. Golang通脉之流程控制

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

  9. Go语言系列(三)- 基础函数和流程控制

    一.strings和strconv的使用 1. strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头 . 2. strin ...

随机推荐

  1. DCloud-MUI:utils

    ylbtech-DCloud-MUI:utils 1.返回顶部 1.init mui框架将很多功能配置都集中在mui.init方法中,要使用某项功能,只需要在mui.init方法中完成对应参数配置即可 ...

  2. HDU2186

    2019-05-30 19:31:10 水题 #include <bits/stdc++.h> using namespace std; int main() { int c; scanf ...

  3. Asp.net跨域配置

    <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Contro ...

  4. 【poj1995】快速幂

    题目大意 求a^b %p 1≤a,b,p≤10^9 思路 时间O(10^9)一定会爆T,采用数学方法+位运算,得到O(log b)的快速幂算法 代码 #include<cstdio> #i ...

  5. html中<a>标签_top和_parent的区别

    在html中,<a>标签有个target属性,而targe属性有四个值,分别是:_blank._self._top._parent.前两个相信很好理解,第一个就是在新窗口中打开的意思,第二 ...

  6. Php.ini文件位置在哪里 Php.ini文件找不到

    转载自:http://www.php100.com/html/php/rumen/2013/0831/26.html [导读] Php ini文件是php的一个配置文件,在windows主机中如果你未 ...

  7. 【转】SQL SERVER 主体,已同步

    转自郭大侠博客:  https://www.cnblogs.com/gered/p/10601202.html 目录 SQL SERVER 基于数据库镜像的主从同步... 1 1.概念... 2 1. ...

  8. android黑科技系列——Wireshark和Fiddler分析Android中的TLS协议包数据(附带案例样本)

    一.前言 在之前一篇文章已经介绍了一款网络访问软件的破解教程,当时采用的突破口是应用程序本身的一个漏洞,就是没有关闭日志信息,我们通过抓取日志获取到关键信息来找到突破口进行破解的.那篇文章也说到了,如 ...

  9. 努比亚 Z17 mini s (Nubia NX589J) 解锁BootLoader 并刷入recovery ROOT

    首先下载好工具链接:链接:https://pan.baidu.com/s/1gher4T9 密码:rypn 备用下载链接:https://pan.baidu.com/s/1nxdzt9Z 本篇教程教你 ...

  10. three.js 流程图

    用Axure做了个模型图:          第一步: Scene --模型.灯光.特效 第二步: Camera --视角 第三步: Renderer -- 渲染输出 第四步: render --渲染 ...