Go笔记-流程控制

【if】

if 是用于测试某个条件的语句,如果该条件(逻辑型或布尔型)成立,则会执行大括号内的代码,第一个大括号必须和if 或者else同行,否则非法

 1 // 方式1
 2 if condition {
 3      //do something
 4 }
 5 // 方式2
 6 if condition {
 7      // do something
 8 }else{
 9      // do something
10 }
11 // 方式3
12 if condition1 {
13      // do something
14 } else if condition2 {
15      // do something else
16 } else {
17      // default
18 }
19 // 方式4
20 if initialization; condition{
21      // do something
22 }
23 if _,ok := f1();ok{
24     f2()
25 }

else-if 的嵌套不受次数限制,若有多个,建议将可能性大的放在前面

在方式4中的初始化语句中,建议声明变量,避免变量作用域带来的问题

【switch】

 1 // 方式1  变量值的匹配
 2 switch var1 {
 3     case val1:
 4         ...
 5     case val2:
 6         ...
 7     default:
 8         ...
 9 }
10 switch i{
11     case 10:
12         f1()
13     case 20:
14         f2()
15     defaul:
16         f3()
17 }
18
19 // 方式2 变量判断类似if
20 switch {
21     case condition1:
22         ...
23     case condition2:
24         ...
25     default:
26         ...
27 }
28 switch{
29     case i<10:
30         f1()
31     case i>10:
32         f2()
33     defalt:
34         f3()
35 }
36 // 方式3 包含变量声明初始化
37 switch initialization {
38     case val1:
39         ...
40     case val2:
41         ...
42     default:
43         ...
44 }
45 switch result := calculate();{
46     case result > 0:
47         f1()
48     case result < 0:
49         f2()
50     default:
51         f3()
52 }

备注:

Go中的switch不需要break来跳出,自动会跳出控制,如果想不跳出控制的话,就在case后面添加fallthrough,这样就会自动执行这个case后面的case【case i>0:fallthrough】

【for】

 1 //for 初始化语句;条件语句;修饰语句{}
 2 for i := 0;i < 10; i++{
 3     fmt.Println(i)
 4 }
 5 // for 条件语句{}
 6 i := 0
 7 for i<100{
 8     fmt.Println(i)
 9     i++
10 }
11 // for ix,val := range coll{}
12 for key,val := range str{
13     fmt.Printf("index: %d value: %s",key,val)
14 }

【标签与goto】(在程序设计中不建议使用,这个在C中被诟病很久,但是Go语言的设计者为什么...)

标签的名称大小写敏感,为了提高可读性,建议使用大写字母

 1 page main
 2
 3 func main(){
 4     i := 0
 5     HERE:
 6         fmt.Println(i)
 7         i++
 8         if i == 5{
 9             return
10         }
11         goto HERE
12 }

标签定义了要使用,和变量是一样的,这是Go语言的原则之一,程序中不允许出现不使用的代码。

学习参考处:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md

时间: 2025-01-12 05:31:30

Go笔记-流程控制的相关文章

《学习bash》笔记--流程控制

bash支持下述流程控制结构: if/else:如果某条件为真/假,执行一个执行列表. for:执行一个语句列表固定次数. while:当某条件为真时重复执行某语句列表 until:重复执行某语句列表直至某条件为真. case:依据一个变量取值执行几个语句列表中的一个. select:允许用户从一个菜单的可选列表中选择一个. 1.if/else 最简单的流程控制结构类型时嵌入在bash的if语句中的条件语句.当选择做或者不做某件事情或者依据条件表达式的真或者假 从数量不多的几个事情里选择一个进行

F# 学习笔记(流程控制)

流程控制关键字 if: let mutable x = 17*17 - 15*15 if x % 2 = 1 then x <- x - 1 while: [<EntryPoint>] let main argv = let nr_fib n = let mutable a,b,i = 1I,1I,1 while i < n do let t = b b <- a+b a <- t i <- i+1 a (nr_fib 10).ToString() |> p

初学swift笔记 流程控制(五)

1 import Foundation 2 3 for var i=1; i<=10; i++ { 4 println(i) 5 } 6 7 let str1="adl;fjasdfl;ouewrouqwperuadf" 8 for c in str1 { 9 switch c { 10 case "a","f","o": 11 println(c) 12 13 default: 14 var t=""

Java学习笔记之:Java流程控制

一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操作A,反之则执行操作B.循环控制,又称为回路控制,根据循环初始条件和终结要求,执行循环体内的操作. 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构. Java有两种分支结构: if语句 switch语句 Java中有三种主要的循环结构: while循环 do…while循环 for循环

HTML5独家分享:原生JavaScript学习笔记2——程序流程控制

当当当当 .....楼主又来了!新一期的JS学习笔记2--程序流程控制更新了! 当当当当 .....楼主又来了!新一期的JS学习笔记2--程序流程控制更新了! 想一键获取全部JS学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1. 顺序结构 2. 分支结构 3. 循环结构 顺序结构:程序从第一行开始执行,按顺序执行到最后一行 分支结构:就像一条岔路口,必须选择且只能选择其中一条道路继续走下去,不能同时执行两个分支里的代码. 我们可以使用如下三种方式来实现程序的分支

php笔记2.0——php中的变量、数据类型及转换、运算符、流程控制

2.1  php中的变量: 定义变量:$变量名称=值: 变量名称:$开头    $之后的第一位必须是字母    $第二位之后可以是字母.数字或者是下划线.习惯上变量名称有实际含义,第二个单词后首字母大写--驼峰命名. 预定义变量:传值中接收数据变量  $_GET  数据量小,不安全,经由http get方式来传递数据 $_POST  数据量大,安全,经由http post方式来传递数据 $_REQUEST     $_GET+$_POST,效率低 $_FILES  上传变量,经由http pos

python学习笔记3—流程控制if、for、while

流程控制if if 语句 if expression: statement(s) else else语句: if 语句,else语句 if expression: statement(s) else: statement(s) elif语句: if expression1: statement1(s) elif expression2(s): statements2(s) else: statement2(s) 注:Python使用缩进作为其语法分组的方法,建议使用4个空格 逻辑值(bool)包

【原】Java学习笔记005 - 流程控制

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 程序的流程控制(流程结构):顺序结构.选择结构.循环结构 6 7 // 顺序结构:从上向下,顺序执行 8 System.out.println("出生..."); 9 System.out.println("享受人生..."); 10 System.out.print

No2. 学习笔记_流程控制

1 import java.util.Scanner; 2 public class HelloForWhile { 3 4 /** 5 * 文档注释,程序名称:HelloForWhile 流程控制 开发时间:2016-03-07 作者:嘿嘿 6 * */ 7 public static void main(String[] args) { 8 // TODO Auto-generated method stub 9 System.out.println("test"); 10 int