if else、switch、for的特点是什么
本篇内容介绍了“if-else、switch、for的特点是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
流程控制是计算机运算领域的用语,意指在程序运行时,个别的指令(或是陈述、子程序)运行或求值的顺序。不论是在声明式编程语言或是函数编程语言中,都有类似的概念。
if-elseif-else特点:
条件语句不需要使用小括号()包起来;
花括号{}必须有,并且左花括号{必须和if或else在同一行;
在if之后,条件语句之前可以添加变量初始化语句,使用;分隔。
packagemainimport"fmt"funcmain(){if7%2==0{fmt.Println("7iseven")}else{fmt.Println("7isodd")//7isodd}if8%4==0{fmt.Println("8isdivisibleby4")//8isdivisibleby4}ifnum:=9;num"isnegative")}elseifnum"has1digit")//9has1digit}else{fmt.Println(num,"hasmultipledigits")}}switch
switch特点:
左花括号 { 必须和 switch 在同一行;
条件表达式不限制常量或者整数;
switch 后可添加变量初始化语句,使用 ; 分割;
可以不设定条件表达式,在此种情况下,整个 switch 结构与多个 if-else 的逻辑作用等同;
单个 case 中可以出现多个结果选项;
在 case 中添加 fallthrough 关键字,会继续执行紧跟的下一个 case,不需要判断 case 的条件语句;
switch 支持 default 语句,当所有 case 都不满足时,执行 default 语句。
packagemainimport("fmt""time")funcmain(){i:=2fmt.Print("write",i,"as")switchi{case1:fmt.Println("one")case2:fmt.Println("two")//write2astwofallthroughcase3:fmt.Println("three")//threecase4,5,6:fmt.Println("four,five,six")}switchnum:=9;num{case1:fmt.Println("one")default:fmt.Println("nine")//nine}switchtime.Now().Weekday(){casetime.Saturday,time.Sunday:fmt.Println("it'stheweekend")default:fmt.Println("it'saweekday")//it'saweekday}t:=time.Now()switch{caset.Hour()sbeforenoon")default:fmt.Println("it'safternoon")//it'safternoon}}for
for特点:
条件表达式不需要使用小括号 () 包起来;
花括号 {} 必须有,并且左花括号 { 必须和 for 在同一行;
支持 continue 和 break。
packagemainimport("fmt")funcmain(){i:=1//只有条件foriforj:=7;jfor{fmt.Println("loop")break}//遍历数组a:=[...]int{10,20,30,40}fori:=rangea{fmt.Println(i)}fori,v:=rangea{fmt.Println(i,v)}//遍历切片s:=[]string{"a","b","c"}fori:=ranges{fmt.Println(i)}fori,v:=ranges{fmt.Println(i,v)}//遍历字典m:=map[string]int{"a":10,"b":20,"c":30}fork:=rangem{fmt.Println(k)}fork,v:=rangem{fmt.Println(k,v)}}goto,break,continue
goto 特点:
只能在函数内跳转,需要配合标签一起使用;
不能跳过内部变量声明语句;
只能跳到同级作用域或者上层作用域内,不能跳到内部作用域内。
packagemainimport("fmt")funcmain(){//跳出循环fori:=0;;i++{ifi==2{gotoL1}fmt.Println(i)}L1:fmt.Println("Done")//跳过变量声明,不允许//gotoL2//j:=1//L2:}
break 特点:
单独使用,用于跳出 break 当前所在的 for、 switch、 select 语句的执行;
和标签一起使用,用于跳出标签所标识的 for、 switch、 select 语句的执行,可用于跳出多重循环,但标签和 break 必须在同一个函数内。
packagemainimport("fmt")funcmain(){//break跳转到标签处,然后跳过for循环L3:fori:=0;;i++{forj:=0;;j++{ifi>=2{breakL3}ifj>4{break}fmt.Println(i,j)}}}
continue 特点:
单独使用,用于跳出 continue 当前所在的 for 循环的本次迭代;
和标签一起使用,用于跳出标签所标识的 for 语句的本次选代,但标签和 continue 必须在同一个函数内。
packagemainimport("fmt")funcmain(){//continue跳转到标签处,然后执行i++L4:fori:=0;;i++{forj:=0;jifi>4{breakL4}ifi>=2{continueL4}ifj>4{continue}fmt.Println(i,j)}}}
除此之外,还有 break 和 continue,都可以搭配循环语句和跳转语句使用。跳转语句在某些场景下会非常实用,但也很容易出现一些莫名其妙的问题,所以使用起来要更谨慎些。
“if-else、switch、for的特点是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。