首页 > 其他分享 >Go_ if else语句 ,,循环,,switch,,数组

Go_ if else语句 ,,循环,,switch,,数组

时间:2024-04-03 15:56:40浏览次数:25  
标签:int fmt var else --- Println switch score Go

if-else语句

// if 语法
if 定义变量;条件 {
    
}else if 条件{
    
}else{
    
}

// 输入分数,打印 成绩等级
package main

import "fmt"

// if
func main() {
	//1 接收用户输入
	var score int = 0
	fmt.Print("请输入分数:")
	fmt.Scan(&score)  

	showLevel(score)

}

func showLevel(score int) {
	if score >= 90 && score <= 100 {
		fmt.Println("优秀")
	} else if score > 80 && score < 90 {
		fmt.Println("良好")
	} else if score >= 60 && score <= 80 {
		fmt.Println("及格")
	} else {
		fmt.Println("不及格")
	}

}


if res, ok := add(4, 5); ok {
    fmt.Println("计算结果是:", res)
}

循环

# go 只有 for循环
    -没有while
    -没有do while
    -但是通过for循环能实现 while循环
    
# 基本语法--》基于索引的循环
for 定义变量;条件;自增或自减{
    
}


# 基于迭代的循环
package main

import "fmt"

// for

func main() {
	// 1 基本使用--》打印0---9
	//for i := 0; i < 10; i++ {
	//	fmt.Println(i)
	//}

	// 2 省略第一部分,变量的定义--->i作用域范围更大
	//i := 0
	//for ; i < 10; i++ {
	//	fmt.Println(i)
	//}

	// 3 省略第三部分,自增
	//for i := 0; i < 10; {
	//	fmt.Println(i)
	//	i++
	//}

	// 4 省略第一和第三部分  ---》只放条件---》俩分号可以省略---》等同于while循环
	//i := 0
	//for i < 10 {
	//	fmt.Println(i)
	//	i++
	//}

	// 5 三部分全省略--》就是死循环
	//for {
	//	fmt.Println("死循环")
	//}

	// 6 break 和continue 跟所有语言都一样

	// 7 基于迭代的循环====》容器类型:数组,切片,map
	//var a [3]int = [3]int{99, 88, 77}
	//for _, value := range a {  // range python 内置函数---》go中是关键字
	//	//fmt.Println(index)
	//	fmt.Println(value)
	//}

	// 循环字符
	s := "lqz is handsome中"
	//for _, value := range s { // go 直接循环字符串,循环的是一个个字符
	//	//fmt.Println(index)
	//	fmt.Printf("valaue的类型是:%T\n", value)
	//	fmt.Println(string(value)) // 	int32--》rune
	//}

	// 循环字节--->len(字符串)---字节长度
	for i := 0; i < len(s); i++ {
		fmt.Println(s[i])
		fmt.Println(string(s[i]))
	}

	// python 循环字符串循环的是字符
	// python 中循环字节---》把字符串先encode成 bytes格式--》循环bytes格式---》默认以16进制显示--》10进制,二进制

	/*
		s='lqz is handsome中'
		s_b=s.encode('utf-8)
		for item in s_b:
			print(item)
			print(bin(item))
			print(hex(item))

		[ item for item in s.encode('utf-8)]
	*/

}

switch语句

# switch 是关键字---》为了优雅的替换掉过多的if-else
    -python中没有switch关键字---》但是能实现switch的功能或语法
    -java,go,c,js,都有switch关键字的支持
    
# 用户输入分数,打印成绩等级

package main

import "fmt"

func main() {
    var score int = 0
    fmt.Print("请输入分数:")
    fmt.Scan(&score)
    // 1 用法1 ,基本使用 case中放一个相等值
    //switch score {
    //case 88:
    //    fmt.Println("是88")
    //case 99:
    //    fmt.Println("是99")
    //default:
    //    fmt.Println("不知道")
    //}

    // 1.1 基本使用,case中放多个相等值
    //switch score {
    //case 88, 99, 77:
    //    fmt.Println("是88")
    //case 55, 66, 44:
    //    fmt.Println("是99")
    //default:
    //    fmt.Println("不知道")
    //}

    // 2 用法2, case中放条件

    showLevelSwitch(score)

    // 3 default 使用---》所有不符合执行它

    // 4 fallthrough -->无条件执行下一个case

}

// 2 用法2, case中放条件
func showLevelSwitch(score int) {
    switch {
    case score >= 90 && score <= 100:
        fmt.Println("优秀")

    case score > 80 && score < 90:

        fmt.Println("良好")
        fallthrough

    case score >= 60 && score <= 80:
        fmt.Println("及格")
        fallthrough
    default:
        fmt.Println("不及格")

    }

}

数组

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


package main

import "fmt"

// 数组的定义和使用
func main() {
    //1 定义
    //var a [3]int // 数组中的所有元素都被自动赋值为数组类型的零值
    ////var a1 [4]string = [4]string{"lqz", "zhangsan"} // 内容可以小于,但不能大于
    ////var a1  = [4]string{"lqz", "zhangsan"} // 内容可以小于,但不能大于
    //a1 := [4]string{"lqz", "zhangsan"} // 内容可以小于,但不能大于
    //fmt.Println(a)
    //fmt.Println(a1)

    //2 根据下标,使用---》改值,赋值
    //a1[0] = "xxx"
    //a1[3] = "asfasd"
    //fmt.Println(a1)

    // 3 数组的大小是类型的一部分
    //var a3 [3]int = [3]int{1, 2, 3}
    //var a4 [3]int = [3]int{1, 2, 4}
    //var a5 [4]int = [4]int{1, 2, 4}
    //fmt.Println(a3 == a4)
    //fmt.Println(a4 == a5)
    //addA(a3)
    //addA(a5)

    // 4 数组是值类型--->当参数传递到函数中,在函数中修改---》会不会影响原来的
    //var a3 [3]int = [3]int{1, 2, 3}
    //changeA(a3)
    //fmt.Println("外部:", a3)

    // 5 数组的长度 内置函数len
    //fmt.Println(len(a3))

    var a4 = [...]int{1, 2, 33, 4, 5, 6} // 数组长度由值个数决定
    fmt.Println(len(a4))

    // 6 使用 range 迭代数组  fori  forr
    for i := 0; i < len(a4); i++ {
        fmt.Println(a4[i])
    }
    for _, value := range a4 {
        fmt.Println(value)
    }

    // 7 多维数组
    var a5 [5][2]int
    fmt.Println(a5) // [[0 0],[0 0],[],[],[]]
    a5[1][1] = 99
    fmt.Println(a5)
    var a6 [5][2]int = [5][2]int{{11, 33}, {66, 77}}
    fmt.Println(a6)

    // 8 定义并赋值
    var a7 [100]int = [100]int{98: 999}
    fmt.Println(a7)
}

func addA(a [3]int) (total int) {
    for _, value := range a {
        total += value
    }
    return
}

func changeA(a [3]int) {
    a[0] = 99
    fmt.Println("内部", a)
}

 

  

  

 

标签:int,fmt,var,else,---,Println,switch,score,Go
From: https://www.cnblogs.com/wzh366/p/18112863

相关文章

  • django原生FBV
    1,django原生FBVurls.py#1,django原生FBVpath('origin/',FBV.view),path('origin2/<str:id>/',FBV.view_detail)view.pyimportjsonfromdjango.db.modelsimportQfromdjango.views.decorators.csrfimportcsrf_exempt,csrf_pro......
  • 30-ORM:CURD神器GORM包介绍及实战
      目前,GitHub上star数最多的是GORM,它也是当前Go项目中使用最多的ORM。 GORM基础知识介绍GORM是Go语言的ORM包,功能强大,调用方便。像腾讯、华为、阿里这样的大厂,都在使用GORM来构建企业级的应用。 功能全。使用ORM操作数据库的接口,GORM都有,可以满足我们开发中对数据库......
  • 2024-04-03:用go语言,在一个小城市里,有 m 个房子排成一排, 你需要给每个房子涂上 n 种颜
    2024-04-03:用go语言,在一个小城市里,有m个房子排成一排,你需要给每个房子涂上n种颜色之一(颜色编号为1到n),有的房子去年夏天已经涂过颜色了,所以这些房子不可以被重新涂色,我们将连续相同颜色尽可能多的房子称为一个街区。比方说houses=[1,2,2,3,3,2,1,1],它包含5个街......
  • Linux系统下安装MongoDB的详细步骤
    一、概述MongoDB由C++语言编写,是一个介于关系型数据库和非关系型数据之间的产品,是非关系型数据库中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似与json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是它支持的查询语言非常强大,其语......
  • golang—踩坑之切片
    1.记录一次切片引用错误,希望大家不要踩坑,用来惊醒自己!修改之前:import("context""encoding/json""feishu/global""feishu/structure""feishu/utils""fmt""github.com/gin-gonic/gin"......
  • 由浅到深认识Go语言(7):数组
    该文章Github地址:https://github.com/AntonyCheng/go-notes【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template【有条件的情况下推荐直......
  • 由浅到深认识Go语言(8):切片
    该文章Github地址:https://github.com/AntonyCheng/go-notes【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template【有条件的情况下推荐直......
  • 由浅到深认识Go语言(4):常量&运算符
    该文章Github地址:https://github.com/AntonyCheng/go-notes【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template【有条件的情况下推荐直......
  • 由浅到深认识Go语言(9):map
    该文章Github地址:https://github.com/AntonyCheng/go-notes【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template【有条件的情况下推荐直......
  • MongoDB用户权限管理,设置密码并连接
    MongoDB用户权限管理,设置密码并连接如何设置密码在服务启动状态下,在命令行中输入mongo;首先设置admin表的用户(必须,否则单独设置表用户无用),先执行useadmin,再执行db.createUser({user:'root',pwd:'123456',roles:['root']}),此时会创建一个名为root,密码为123456,角色为root的用......