当前位置: 首页 > news >正文

Go 语言流程控制详解:if / switch / for

运算符

对于这个运算符的章节来说每个语言都是差不多的

这里都是和C++进行比较学习,有两个点需要进行注意

go语言中的++ 和 -- 是属于语句而不是表达式

//错误代码package main
import "fmt"func main(){a := 1fmt.Println("a:", a++)
}

C/C++中的++或者--是表达式而go语言中的++ 和 --是语句,因此go中是不分前置++和后置++ 的。

流程控制

分支结构

if 语句

go 语言中if 语句的几点注意事项

package main
import "fmt"func main(){a := 1//fmt.Println("a:", a++)if b := 1; b>=a{fmt.Println("成功进行if语句啦")}
}

  • if 后面的判断语句是可以不使用使用括号括起来的,也建议这样使用
  • if 语句后面的判断语句可以进行假如变量的定义,但是和判断语句之间一定要通过 分号 进行间隔
  • if 语句和判断语句之间一定要通过空格进行间隔

swich 语句

func testSwich(){var a intfmt.Scanln(&a)switch a/10{case 9,10:fmt.Println("你的成绩等级为A")case 8:fmt.Println("你的成绩等级为B")case 7:fmt.Println("你的成绩等级为C")case 6:fmt.Println("你的成绩等级为D")default:fmt.Println("你的成绩等级为E")}
}

几点注意事项

switch 后面必须是一个表达式(即常量值、变量或者一个有返回值的函数)

case 后面如果是常量值,则要求每个case 后面的常量值不能进行重复,并且类型还要和swithc 后面的表达式的类型相同

default 不是必须要写的,如果要写的话位置也可以随意,并不是要求到最后

case 后面也可以跟多个值,每个值之间用逗号进行间隔

case 后面也不需要进行带break,这个工作相当于golang 直接帮我们做了

如果想要进行进行执行没有break的效果,则需要进行执行switch穿透,使用fallthrough,这样则还会进行执行到使用fallthrough关键字的case的下一个case

另外

switch 后面也可以不跟表达式,这时候是当if语句来使用

func test(){	
//直接当if语句来使用var b intfmt.Scanln(&b)switch {case b>90:fmt.Println("你的成绩等级为A")case b>80:fmt.Println("你的成绩等级为B")case b>70:fmt.Println("你的成绩等级为C")case b>60:fmt.Println("你的成绩等级为D")default:fmt.Println("你的成绩等级为E")}}

循环结构

go 语言中是没有while循环的,循环只有for循环

for 循环

go 语言中for循环的格式是非常灵活的

func testFor(){for i:=0;i<10;i++ {fmt.Println("i:",i)}j := 10for j<20{fmt.Println("j:",j)j++}
}

go 语言中的死循环

//死循环for ; ; {fmt.Println("我正在循环...")}

键值循环

for range 结构是go语言中特有的迭代结构,在许多条件下特别有用,可以进行遍历数组、切片、字符串、map以及通道,for range 这个语法类似于C++中的范围for

range 返回的第一个参数是下标,第二个参数才是遍历的值

s := "hello golang"
//遍历字符串有两种方式
//1.
for i:=0;i<len(s);i++{fmt.Printf("%c \n",s[i])
}
//2.
for i, value := range s{fmt.Printf("%d,%c \n",i,value)
}

http://www.dtcms.com/a/435209.html

相关文章:

  • 企业网站栏目设计h5手机网站实例
  • 操作系统应用开发(十三)RustDesk文件服务搭建——东方仙盟筑基期
  • 莱州网站建设服务程序开发的步骤是什么
  • 网站域名多少钱一年杭州seo公司排名
  • 武昌网站制作公司深圳vi设计公司推荐
  • AI驱动的软件质量保障:未来已来
  • Lama Cleaner图片去水印工具最新版IOPaint-1.5.3使用教程-优雅草卓伊凡
  • Spring Boot 配置属性绑定
  • tauri中的wry和tao是干啥的?都是什么作用
  • 个人网站建设发布信息wordpress移动端悬浮导航代码
  • 神经网络评估指标:准确率、召回率等详解(代码验证)
  • linux免密切换
  • 藏语自然语言处理入门 - 2 分词
  • 2020年美国新冠肺炎疫情数据分析与可视化
  • 天津重型网站建设推荐影响网站alexa排名的主要因素有
  • 2.Java中创建线程
  • 分段函数的傅里叶变换及其应用
  • 全网网站建设优化长江设计公司
  • 公司网站推广张家界网站建设
  • 英语学习-Saints037
  • 拧紧扭矩到达后电机是否过冲测试(拧紧策略算法系列)
  • 领码方案|微服务与SOA的世纪对话(1):从“大一统”到“小而美”
  • 【JS】什么是单例模式
  • 昆明网站建设优化企业wap网站 微信小程序
  • wordpress 网站统计插件网站建设网页开发
  • 网站内容维护费用灯光设计网站推荐
  • pink老师html5+css3day02
  • CTFHub 信息泄露通关笔记4:备份文件下载 bak文件
  • OverlayManager service, overlay, idmap, rro, android
  • 如何拆解一个Java项目?