




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
流程控制if分支结构语句switch语句01.02.目录01if分支结构语句单分支双分支多分支注意事项1if分支结构语句条件语句:根据是否满足条件,有选择地跳转到相应的执行序列。if语句单分支双分支多分支if分支结构语句一般会由关键字if、条件表达式和由花括号包裹的代码块组成。其中代码块为:包含了若干表达式和语句的序列。在Go语言中,代码块必须由花括号包裹。多分支if<condition>{<Executestatement>}elseif<condition>{<Executestatement>}....else{<Executestatement>}双分支if<condition>{<Executestatement>}else{<Executestatement>}单分支if<condition>{<Executestatement>}1if分支结构语句packagemainimport"fmt"funcmain(){vara=1varb=2//如果if语句条件为真,则会执行相对应的代码ifa<=b{fmt.Println("a<=b")}else{fmt.Println("a>b")}}运行结果为:a<=bif语句的条件判断表达式不需要也不能加小括号,即
(),这是Go语言与其他语言if语句的区别。if语句后面的大括号必须跟条件表达式写在一行,不能换行写,换行写会导致编译错误。1if分支结构语句packagemainimport"fmt"funcmain(){
vara=10varb=20//如果if语句条件为真,则不会执行elseif相对应的代码ifa>5{fmt.Println("a>5")}elseifa<b{fmt.Println("a<b")}}运行结果为:a>5if语句与elseif语句是互斥的执行因为if语句已经成立了,所以elseif里面的语句未能执行。1if分支结构语句packagemainimport"fmt"funcmain(){vara=11varb=5ifa>20{fmt.Println("a>20")}elseifa>15{fmt.Println("a>15")}elseifa>10{fmt.Println("a>10")}elseifa>b{fmt.Println("a>b")}}运行结果为:a>10多个elseif语句,会被依次判断,直到其中一个满足条件的被执行1if分支结构语句packagemainimport"fmt"funcmain(){vara=10ifa>5{ifa>20{fmt.Println("a>20")}elseifa>10{fmt.Println("a>10")}else{fmt.Println("a>5")}}else{fmt.Println("a<=5")}}运行结果为:a>5if语句里面可以嵌套多层的if、elseif以及else1if分支结构语句if分支结构语句使用注意事项条件语句不需要使用括号()将条件包含无论语句体内有几条语句,花括号{}都是必须存在的左花括号{必须与if或者else处于同一行在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔在有返回值的函数中,不允许将“最终的”return语句包含在if...else...结构中,否则会编译失败1if分支结构语句02Switch选择语句有表达式无表达式2Switch选择语句Switch选择语句:根据不同条件来执行不同动作,每一个条件对应一个case分支。switch语句有表达式无表达式switch语句的执行过程从上至下,直到找到匹配项匹配项后不需要再加break每一个switch语句只能包含一个可选的default分支,若没有找到匹配项,会默认执行default分支中的代码块switch表达式{//case后的条件可以是多个值casevalue1,value2:<Executestatement>1casevalue3:<Executestatement>2......//若以上条件都不满足,则执行下面的语句default:
<Executestatement>n}有表达式switch{case<condition>1:<Executestatement>1case<condition>2:<Executestatement>2......//若以上条件都不满足,则执行下面的语句default: <Executestatement>n}无表达式2Switch选择语句2Switch选择语句packagemainimport"fmt"funcmain(){score:=80switchscore{case90:fmt.Println("A")case80:fmt.Println("B")case70:fmt.Println("C")default:fmt.Println("D")}}运行结果为:B首先定义整数变量
score接着使用switch语句判断score如果是90,则打印A如果是80,则打印B如果是70,则打印C其他情况,则打印D2Switch选择语句packagemainimport"fmt"funcmain(){score:=80ifscore==90{fmt.Println("A")}elseifscore==80{fmt.Println("B")}elseifscore==70{fmt.Println("C")}else{fmt.Println("D")}}运行结果为:B将上述代码改成if-else写法如果是90,则打印A如果是80,则打印B如果是70,则打印C其他情况,则打印D2Switch选择语句packagemainimport"fmt"funcmain(){switchscore:=80;score{case90:fmt.Println("A")case80:fmt.Println("B")case70:fmt.Println("C")default:fmt.Println("D")}}运行结果为:B可以在判断条件前面定义变量用;号分割2Switch选择语句packagemainimport"fmt"funcmain(){score:=66switch{casescore>90:fmt.Println("A")casescore>80:fmt.Println("B")casescore>70,score>60://可以放多个条件
fmt.Println("C")default:fmt.Println("D")}}运行结果为:Cswitch后面可以没有条件表达,将条件放在case的后面,也可以放多个条件,但每个case后面的条件不能重复。2Switch选择语句packagemainimport"fmt"funcmain(){switchscore:=80;score{case90:fmt.Println("A")case80:fmt.Println("B")fallthrough//强制执行下一case后面的代码case70:fmt.Println("C")default:fmt.Println("D")}}运行结果为:BCswitch语句支持使用fallthrough关键字强制执行下一case里面的代码2Switch选择语句switch语句还可以被用于type-switch来判断某个interface变量中实际存储的变量类型TypeSwitchswitchx.(type){/*定义任意个数的case*/casetype1:statement(s)casetype2:statement(s)/*可选*/default: statement(s)}语法格式2Switch选择语句packagemainimport"fmt"funcmain(){varxinterface{}switchi:=x.(type){
casenil:fmt.Printf("x的类型:%T\r\n",i)caseint:fmt.Printf("x是int型")casefloat64:fmt.Printf("x是float64型")casefunc(int)float64:fmt.Printf("x是func(int)型")casebool,string:fmt.Printf("x是bool或string型")default:fmt.Printf("未知类型")}}运行结果为:x的类型:<nil>通过switch语句判断类型2Switch选择语句Switch选择语句注意事项switch/case后是一个表达式(即:常量,变量,一个有返回的函数都可以);case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致;case后面可以带多个表达式,使用逗号间隔;case后面的表达式如果是常量值,则要求不能重复;cas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书美国
- 医药研发合同2024年
- 个人私家车租赁合同
- 二手合法房屋买卖合同
- 电子身份认证系统开发授权协议
- 手房买卖学区房补充协议
- 电影拍摄聘用合同
- 企业年度庆典活动方案
- 单元主题二“沧海桑田”-地表形态的形成与演变-高中地理单元教学设计
- 买卖合同-油脂油料省间调拨合同8篇
- DB52T 1566-2021 托幼机构消毒卫生规范
- 非煤矿山复工复产安全培训
- 我国科技型中小企业税收优惠政策激励效应及优化路径研究的开题报告
- 电力局供电公司聘用合同样本
- 临床中心静脉穿刺置管护理深静脉CVC
- 丝绸之路上的民族学习通超星期末考试答案章节答案2024年
- 四年级语文下册第六单元【集体备课】(教材解读+教学设计)
- 2024版义务教育小学科学课程标准
- 培训机构疫情防控管理制度
- 腰椎间盘突出症护理查房课件
- 第15课人机对话的实现(教学设计)六年级上册信息技术浙教版
评论
0/150
提交评论