GO语言 包 if..else.. for循环 switch 数组

1.什么是包

1.新建一个文件夹,内部写很多go文件,但是包名必须一致,改文件夹就是一个包

2.作用和优点
包用于组织 Go 源代码,提供了更好的可重用性与可读性。由于包提供了代码的封装,因此使得 Go 应用程序易于维护。

2.注意点和使用

1.包:

 

 

 2.使用

 

 

 if-else

1.基本语法

注意:if  条件{}    大括号和条件之间不能换行
1.语法:
    if 条件{
        代码体
    }else if 条件{
        代码体
    }else {
        代码体
    }
2.示例:
    if a == 90{
        fmt.Println("a 是90");
    }
    if a >90{
        fmt.Println("a 大于90")
    }else if a<90{
        fmt.Println("a 小于90")
    }else {
        fmt.Println("a 等于90")
    }

2.补充

//在条件中可以定义变量,但是它的作用于范围只在if判断内部使用
if a :=90;a>90{
fmt.Println("大于")
}else if a==90{
fmt.Println(a)

}

for循环

1.for循环执行步骤

for 是 Go 语言唯一的循环语句。Go 语言中并没有其他语言比如 C 语言中的 while 和 do while 循环。

1.语法:
for 初始化; 条件; post{代码体}
//for initialisation; condition; post {
}
示例:
for i:=0;i<10;i++{
fmt.Println(i)
}
2.工作步骤: 初始化语句只执行一次。循环初始化后,将检查循环条件。如果条件的计算结果为 true ,则 {} 内的循环体将执行,接着执行 post 语句。post 语句将在每次成功循环迭代后执行。
在执行 post 语句后,条件将被再次检查。如果为 true, 则循环将继续执行,否则
for 循环将终止。(译注:这是典型的 for 循环三个表达式,第一个为初始化表达式或赋值语句;
第二个为循环条件判定表达式;第三个为循环变量修正表达式,即此处的 post ) 这三个组成部分,即初始化,条件和 post 都是可选的。让我们看一个例子来更好地理解循环。

2示例:

三部分,都可以省略
    1.先省略第一部分
    i :=0
    for ;i<10;i++{
        fmt.Println(i)
    }
    2.省略第三部分
    i :=0
    for ;i<10;{
        i++
        fmt.Println(i)
    }
    3.省略第二部分(注意没有条件为死循环)
    for ;;{
        fmt.Println("xxxx")
    }
    4.死循环
    for {
        fmt.Println("xxxx")
    }
    5.只写条件 for 条件{}  等同于while循环
    
    for {
    
        fmt.Println("sdffsdsa")
    }
    6.break和continue跟其他任何语言都一样

    for i:=0;i<10;i++{
        if i==5{
            break
        }
        fmt.Println(i)
    }
    for i:=0;i<10;i++{
        if i==5{
            continue
        }
        fmt.Println(i)
    }
7.for 条件{}

switch

1.简介

switch 是一个条件语句,用于将表达式的值与可能匹配的选项列表进行比较,并根据匹配情况执行相应的代码块。它可以被认为是替代多个 if else 子句的常用方式

2.语法示例

1.那个case条件成立执行那个代码,都不成立就执行default代码块  
  //finger := 8也可定义在这
  switch finger := 8; finger {
    case 1:
        fmt.Println("Thumb")
    case 2:
        fmt.Println("Index")
    case 3:
        fmt.Println("Middle")
    case 4:
        fmt.Println("Ring")
    case 5:
        fmt.Println("Pinky")
    default: // 默认情况
        fmt.Println("incorrect finger number")
    }

2.多表达式判断
    letter := "i"
    switch letter {
    case "a", "e", "i", "o", "u": // 一个选项多个表达式
        fmt.Println("vowel")
    default:
        fmt.Println("not a vowel")
    }
3.无表达式的 switch:
    num := 75
    switch { // 表达式被省略了
    case num >= 0 && num <= 50:
        fmt.Println("num is greater than 0 and less than 50")
    case num >= 51 && num <= 100:
        fmt.Println("num is greater than 51 and less than 100")
    case num >= 101:
        fmt.Println("num is greater than 100")
    }

4.Fallthrough 语句
        a:=10
    switch a {
    case 1:
        fmt.Println("1")
        fmt.Println("xxxx")
    case 2:
        fmt.Println("2")
    case 10:
        fmt.Println("10")
        穿透,无条件执行下一个case的内容
        fallthrough
    case 11:
        fmt.Println("11")
        test5()
        fallthrough
    case 12:
        fmt.Println("12")
    }

数组

1.什么是数组

数组是同一类型元素的集合。例如,整数集合 5,8,9,79,76 形成一个数组。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(译者注:当然,如果是 interface{} 类型数组,可以包含任意类型)

2.定义数组

方式1:定义不赋值
var a [5]int  //定义了一个长度为5的int类型数组
fmt.Println(a) //[0 0 0 0 0]
数组中的所有元素都被自动赋值为数组类型的零值

方式2定义赋值
var a [6]int=[6]int{1,2,3,4,5,6}
fmt.Println(a) //[1 2 3 4 5 6]

var b =[6]int{1,2,3}
mt.Println(b) //[1 2 3 0 0 0]没赋值的用0填补

//第99个位置设为99,第88个位置设为88
a :=[100]int{1,2,98:99,87:88}
//a[-9]=19  不支持
fmt.Println(a)

补充:
改值:
数组名[索引] = 要改的值

查:
数组名[索引]

3.数组常用方法

1.数组的长度 内置函数len
a:=[4]int{1,2,3}
fmt.Println(len(a))

2.数组迭代
#1.通过forrange迭代
    var a [4]int=[4]int{1,2,}
    for i:=0;i<len(a);i++{
        fmt.Println(a[i])
    }
#2.通过range迭代:i为索引,v位置,只循环一个为索引
    for i,v:=range a {
    //for i:=range a { 
        fmt.Println("------",i)
        fmt.Println(v)
    }
3.多维数组
7为总长度,3为每个小数组长度
var a [7][3]int
a[0][1]=100
fmt.Println(a) //[[0 100 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0]]

 

posted @ 2019-12-10 19:27  心慌得初夏  阅读(377)  评论(0编辑  收藏  举报
levels of contents