zoukankan      html  css  js  c++  java
  • GO

    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)
    }
    
  • 相关阅读:
    Java 第十一届 蓝桥杯 省模拟赛 螺旋矩阵
    Java 第十一届 蓝桥杯 省模拟赛 螺旋矩阵
    Java 第十一届 蓝桥杯 省模拟赛 正整数的摆动序列
    Java 第十一届 蓝桥杯 省模拟赛 正整数的摆动序列
    Python abs() 函数
    Python数学常量
    Python三角函数
    Python随机数函数
    Python数学函数
    语义分割模型优化
  • 原文地址:https://www.cnblogs.com/guapitomjoy/p/12406026.html
Copyright © 2011-2022 走看看