日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

for循环里的if语句中break_Go语言极简教程 - 第五篇 控制语句

發(fā)布時間:2025/4/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 for循环里的if语句中break_Go语言极简教程 - 第五篇 控制语句 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

if語句

語法

IfStmt = "if" [ SimpleStmt ";" ] Expression Block [ "else" ( IfStmt | Block ) ] .

特點

  • if后面的條件判斷表達式不需要小括號括起來。
  • 左大括號{必須放在和if/else if同行的行尾。
  • if后面可以帶一個簡單語句,該語句可以聲明新的變量并初始化或給已有變量賦值,新聲明的變量僅在該if分支、else if分支以及else分支可見。該簡單語句和后面的條件判斷表達式用“;”分隔。
  • else if和else必須與上一個if分支的右大括號}在同一行。
  • Go語言沒有條件運算符(也稱三目運算符,a>b?a:b)。此時只能用if else來替換。

最佳實踐

  • 盡量減少if條件表達式的復雜度,以提高代碼可讀性。如果條件表達式邏輯較為復雜,可以將判斷邏輯放到一個函數(shù)里,該函數(shù)返回判斷結果。
  • 盡可能的減少if語句的嵌套層次,嵌套層次越多,代碼可讀性就越差,可維護性也越低??梢栽趇f分支內(nèi)使用return語句來提前結束函數(shù)執(zhí)行,減少if嵌套層次,使代碼結構變得扁平。

優(yōu)化前代碼示例:

優(yōu)化后代碼示例:

switch語句

語法

SwitchStmt = ExprSwitchStmt | TypeSwitchStmt .ExprSwitchStmt = "switch" [ SimpleStmt ";" ] [ Expression ] "{" { ExprCaseClause } "}" .ExprCaseClause = ExprSwitchCase ":" StatementList .ExprSwitchCase = "case" ExpressionList | "default" .

特點

  • switch語句會根據(jù)傳入的參數(shù)檢測并執(zhí)行符合條件的case分支。
  • 和if語句一樣,switch后面也可以帶一個簡單的初始化或賦值語句,語句中新聲明的變量該在switch語塊內(nèi)可見。
  • switch條件表達式的值可以是任意支持相等比較運算的類型變量。
  • switch支持default分支,當所有case分支都未被匹配到,則執(zhí)行default分支,default分支出現(xiàn)的位置和順序不影響case的分支條件判斷。
  • switch后面的表達式是可選的。如果switch后面沒條件判斷表達式,則每個case子句的表達必須是條件判斷表達式,而不是一個值。
  • 可以通過fallthough語句強制執(zhí)行下一個case分支,無論該case分支是否符合條件。

for語句

與其它語言不同,Go語言只支持一個循環(huán)結構語法,即for語句。不像其它語言除for外有do, while以及foreach等豐富的循環(huán)結構語法。

Go語言中for語句存在多種形式

形式一

ForClause = [ InitStmt ] ";" [ Condition ] ";" [ PostStmt ] .InitStmt = SimpleStmt .PostStmt = SimpleStmt .

這種形式與其它語言的for循環(huán)結構相同。

形式二

ForStmt = "for" [ Condition | ForClause | RangeClause ] Block .Condition = Expression .

這種形式與其它語言的while(expr)循環(huán)結構相同。

形式三

RangeClause = [ ExpressionList "=" | IdentifierList ":=" ] "range" Expression .

這種形式與其它語言的foreach結構相同。

break關鍵字

可以使用break關鍵字強制跳出for、switch、select語句的執(zhí)行。

在有多個嵌套層的for、switch、select結構中,break跳出當前所在的嵌套層,也可以使用break Label跳出到外層。

continue關鍵字

continue關鍵字用于跳出for循環(huán)的本次迭代,直接跳到下一次迭代的PostStmt語句處開始執(zhí)行。

和break關鍵字一樣,在有多個嵌套層的for循環(huán)結構中,continue跳到當前所在的for循環(huán)層,也可以使用continue Label跳出到外層。

標簽和跳轉

標簽語法

Label: Statement

只能在函數(shù)內(nèi)部聲明Label

goto

語法

GotoStmt = "goto" Label .

特點

  • goto語句只能在函數(shù)內(nèi)部跳轉。
  • goto語句不能跳過內(nèi)部變量聲明語句。
  • goto語句只能跳到同級作用域或者上層作用域,不能跳到內(nèi)部作用域內(nèi)。

總結

以上是生活随笔為你收集整理的for循环里的if语句中break_Go语言极简教程 - 第五篇 控制语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。