GO - if判断,for循环,switch语句,数组的使用

1.if - else if - else的使用

package main

import "fmt"

func main() {
    // 1.简单使用
    var a=10
    if a==10 {  // 这个位置不能回车,不能换行
        fmt.Println(a)
    }

    //2 if - else
    var b =16
    if b==20 {
        fmt.Println("20")
    }else{
        fmt.Println("15")
    }

    //3 if - else if - else
    var c =20
    if c==20 {
        fmt.Println("20")
    }else if c==15 {
        fmt.Println("15")
    }else {
        fmt.Println("10")
    }
}

2.for循环

package main

func main() {
    // 基本语法
    for 初始化; 条件; 自增/自减{

    }

}

2.1简单使用

    for a:=0; a<10; a++  {
        fmt.Println(a)
    }

2.2省略初始化

    a :=0
    for ;a<10 ; a++ {
        fmt.Println(a)
    }

2.3省略初始化和自增自减

    a :=0
    for ;a<10 ;  {
        fmt.Println(a)
        a++
    }

2.4.省略初始化和自增自减(进阶版)

注意:两个分号省略了,(类似while循环)

    a :=0
    for a<10  {
        fmt.Println(a)
        a++
    }

2.5.死循环

    // 死循环一
    for true{
        fmt.Println("ak47")
    }

    // 死循环二(三部分都省略了)
    for {
        fmt.Println("ak47")
        break
    }

3.switch语句

3.1基本使用

package main

import "fmt"

func main() {

    // 1.基本使用
    var a = 10
    switch a {
    case 1:  //相当于if a==1
        fmt.Println("1")
    case 5:
        fmt.Println("5")
    case 10:
        fmt.Println("10")
    }
}

3.2default

    var b = 18
    switch b {
    case 1:
        fmt.Println("1")
    case 5:
        fmt.Println("5")
    case 10:
        fmt.Println("10")
    default:   //相当于else
        fmt.Println("你是蔡徐坤")
    }

3.3多表达式判断

(只要符合期中一个条件就成立)

    var c = 18
    switch c {
    case 1, 2, 5:
        fmt.Println("1")
    case 6, 7:
        fmt.Println("5")
    case 10, 15, 18:
        fmt.Println("10")
    default:
        fmt.Println("你是蔡徐坤")
    }

3.4无表达式

    var d = 30
    switch {
    case d == 20:
        fmt.Println("1")
    case d == 30:
        fmt.Println("5")
    case d == 40:
        fmt.Println("10")
    default:
        fmt.Println("你是蔡徐坤")
    }

3.5无表达式

and(和)的条件 && 或(or)的条件 ||

    var e = 20
    var d = 30
    switch {
    case d == 30 && e==20:   //同时成立
        fmt.Println("1")
    case d == 30:
        fmt.Println("5")
    case d == 40:
        fmt.Println("10")
    default:
        fmt.Println("你是蔡徐坤")
    }

3.6.fallthrough

无条件执行下一个case(穿透)

    var f = 2
    switch  {
    case f == 1:
        fmt.Println(1)
    case f == 2:
        fmt.Println(2)
        fallthrough   //一旦碰到 fallthrough会无条件执行下面的语句
    case f == 6:
        fmt.Println(250)
        fallthrough   ////只要代码读到fallthrough与他紧挨着的语句,无论是否满足条件,他都会执行里面的内容
    case f == 3:
        fmt.Println(666)
    }

4.数组

4.1定义数组

package main
import "fmt"
func main() {
    // 同一类元素的集合, 不允许混合不同元素
    // 定义数组(定义了一个大小为4的int类型数组)
    var a [4]int  // 四个为0的数组
    fmt.Println(a)  // int默认值为0
}

4.2使用数组

(从索引0开始)

package main
import "fmt"
func main() {
    var a [4]int
    fmt.Println(a)
     a[0] = 10
    fmt.Println(a[0])
    fmt.Println(a)
}

4.3定义并赋初始值(三种方式)

package main
import "fmt"
func main() {
    // 1.
    //var b [4]int = [4]int{1,2,3,4}
    // 2.
    //var b = [4]int{1,2,3,4}
    // 3.
    b := [4]int{1,2,3,4}
    fmt.Println(b)
}

4.4定义并赋初值(其他方式)

package main
import "fmt"
func main() {
    //var c [4]int = [4]int{1,2}  // 只给前两个赋值
    //var c [4]int = [4]int{1:2}  // 只给第二个赋值,前面是索引,后面是值
    //var c [4]int = [4]int{1:2,2:3}  // 只给第二,三个个赋值
    var c [4]int = [4]int{2:3,1:2}  // 只给第二,三个个赋值
    c[3] = 100
    fmt.Println(c)
}

4.5数组大小固定(大小一旦定义,不能改变)

package main
import "fmt"
func main() {
    //var c [4]int = [5]int{1,2}   // 错的
    //var c [4]int = [4]int{1,2,3,4,5}   // 错的

    //var c [4]int = [4]int{1,2,3,4}
    //a[4] = 10  //错的,最大索引为3
    //fmt.Println(a[4])  //错的
}

4.6.数组的大小是类型的一部分

package main
import "fmt"
func main() {
    // 下面两个不是同一种类型(不能比较和加减)
    var a [3] int
    var b [4] int
}

4.7.数组的值类型(引用类型)

// 说法不准确 (因为py中一切皆对象,不可变数据类型也是对象,对象就是地址)

// py中的不可变类型(值类型)当做参数传递到函数中,如果在函数中改变该值,原值不会变

// py中的可变类型(引用类型:地址)当做参数传递到函数中,如果在函数中改变该值,原值会改变

// go中值类型,当做参数传递时,copy一份过去,值被copy是相当于复制了一份过去

package main
import "fmt"
func main() {
    var d = [4]int{1,2,3,4}
    test(d)  // 当做参数传递过去
    fmt.Println(d) // 原值没有改变
}

func test(d [4]int)  {
    d[0] = 100   // 修改值
    fmt.Println(d) // 传过来的数组改变了,但原值不变
}

4.8数组的长度(len)

package main
import "fmt"
func main() {
    var e = [4]int{1,2,3,4}
    fmt.Println(len(e))
}

4.9数组的循环

package main
import "fmt"
func main() {
    // 方法一:
    var a = [4]int{1,2,3,4}
    for i:=0 ;i<len(a) ;i++  {
        fmt.Println(a[i])
    }

    //方式二:(range关键字,它不是内置函数)把数组放在range关键字后
    var b = [4]int{1,55,3,66}
    for z:=range b{
        //fmt.Println(z)
        fmt.Println(b[z])  //这不是正统的用法
    }

    // 当用一个变量来接收时,这个变量就是索引
    // 当用两个变量来接收时,这两个变量就是索引和值
    for k,v:=range a {
        fmt.Println(k,v)
    }

    // 当你不想取索引的时候也可以用下划线代替
    for _,v:=range a {
        fmt.Println(v)
    }
}

4.10多维数组

package main
import "fmt"
func main() {
    var a [4][3]int
    fmt.Println(a)
    a[1][1] =100  // 修改值
    fmt.Println(a)
}

4.11多维数组定义并赋初值

package main
import "fmt"
func main() {
    var a = [4][3]int{{1,1,1},{2,2,2},{3,3,3},{4,4,4}}
    fmt.Println(a)

    // 把数组第二个位置初值改为[6,6,6]
    var b = [4][3]int{1:{6,6,6}}
    fmt.Println(b)

    var c = [4][3]string{1:{"6","6","6"}}
    fmt.Println(c)
    // 字符串的空值是空字符串  ""
    // int类型空值是  0
    // 数组的空值,取决于类型的空值
    var d [4][3]string
    fmt.Println(d)
}

原文地址:https://www.cnblogs.com/guapitomjoy/p/12406026.html

时间: 2024-10-08 04:04:23

GO - if判断,for循环,switch语句,数组的使用的相关文章

判断、条件判断、循环、跳转语句

<html> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&

switch语句和for循环

switch语句: 1. switch 后面小括号中表达式的值必须是整型或字符型 2. case后面的值可以是常量数值,如:1.日:也可以是一个常量表达式,如:2+2:但 不能是变量或带有变量的表达式,如:a*2 3. case匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束 4.最后一条语句的break可以省略 5.default 块可以出现在任意位置,也可以省略 6.可以把功能相同的 c

助教:C语言问题收集--scanf()的一些常见问题;switch语句;for循环的执行顺序

scanf函数中的"格式控制"后面应当是变量地址,而不应是变量名. 输入数据时不能规定精度. scanf("%7.2f",&a).这是不合法的.但是,scanf("%3d%3d",&a,&b)这样写可以. 如果在"格式控制"字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符. scanf("%d,%d,%d",&a,&b,&

判断及循环语句结构

I.判断语句: 1.if语句: A.If(){ //执行语句; } B.if(){ //执行语句; }else{ //执行语句; } C.if(){ //执行语句; }else if{ //执行语句; } …… else{ //执行语句; } 2.switch语句: switch(表达式){ case 常量表达式1:语句1; case  常量表达式2:语句2; …… default:语句; } II.循环语句: 1.for循环语句: for(循环变量初始值;循环条件;循环变量增值){ state

07_Python的控制判断循环语句1(if判断for循环)_Python编程之路

Python的数据类型在前几节我们都简单的一一介绍了,接下来我们就要讲到Python的控制判断循环语句 在现实编程中,我们往往要利用计算机帮我们做大量重复计算的工作,在这样的情况下,需要机器能对某个条件进行判断,或是对某个行为进行重复操作 这时我们就必须要知道如何去编写循环判断语句 if... elif... else if也就是如果的意思,后面需要加一个判断条件,如果判断条件为真,则执行if下的操作,如果为假则跳过操作 注意在每个判断条件后面要加上冒号,且if下面的语句要注意缩进 In [1]

C语言-switch语句的使用。对文件的输出处理。for循环和if的结合使用。

//函数fun功能:统计字符串中各元音字母的个数,注意:不区分大小写. //重难点:switch语句的使用. 1 #include <stdlib.h> 2 #include <conio.h> 3 #include <stdio.h> 4 /*************found**************/ 5 void fun(char *s, int num[5]) 6 { int k, i=5; 7 for (k = 0; k < i; k++) 8 /*

java-条件判断和循环语句

条件判断和循环语句 if语句 if语句格式1: if(关系表达式) { 语句体 } 执行流程: 首先判断关系表达式看其结果是true还是false 如果是true就执行语句体 如果是false就不执行语句体 if语句格式2: if(关系表达式) { 语句体1; }else { 语句体2; } 执行流程 首先判断关系表达式看其结果是true还是false 如果是true就执行语句体1 如果是false就执行语句体2 if语句格式3: if(关系表达式1) { 语句体1; }else  if (关系

Java基础第4天+switch语句、for,while,do...while循环语句、break,return,continue控制跳转语句

1:switch语句(掌握) (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 格式解释说明: switch:说明这是switch语句. 表达式:可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case:后面的值就是要和表达式进行比较的值 break:表示程序到这里中断,跳出switch语句 default:如

条件判断语句 if语句/switch语句

if(条件表达式)语句 if语句即条件判断语句,对于if语句括号里的表达式,ECMAScript会自动调用Boolean()转型函数将这个表达式的结果转换成一个布尔值.如果值为true,执行后面的一条语句,否则不执行 <script type="text/javascript"> var box = 100; if (box > 50) //if 语句里的表达式如果返回的false,只会不执行后面的一条语句 alert(box); //第二条语句,和if语句无关,所以