go - 流程式控制制

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 流程式控制制
  • 條件: if else else if switch
  • 迴圈: for
  • 跳轉: goto 
  • 關鍵字: break continue fallthrough range

1. 條件
  1.1 if else
  1.1.1文法:

  if [聲明變數;] condition1 {    //...  [} else if condition2 {]    //...  [} else {]    //...  }
  1.1.2 注意:
  a. []中的內容為可選,if 條件判斷中可以聲明變數 := 
  b. {}是必須的, condition 不需要用()括起來, {必須與else/if在同一行代碼中
  c. 在有傳回值函數中,不允許把“最終的” return 語句放到if else 結構中,否則編譯出錯

  1.2 switch
  就是多個if...else
  switch後面的運算式可以省略
  註:
  a. 
  case 3:  case 4:  //可以直接寫為:  case 3, 4:
  b. 內建break

  c. 如果需要匹配成功後,還要繼續向下執行,可以用關鍵字 fallthrough 


2. 迴圈
  go語言中只支援 for,無while
  格式:
  for 運算式1; 運算式2; 運算式3 {    //語句  }
  註:
  a. 運算式1,3支援多重賦值,如i, j [:]= 1, 2
  b. 三個運算式均可以省略,注意死迴圈
  c. 也有break, continue分別為跳出迴圈和跳出本次迴圈, break還可以跳轉到標籤

  d. for 與 range 配合使用,可遍曆slice, array, string等


3. 跳轉
  goto可以跳轉到指定標籤位置
  標籤1:  標籤2:  goto 標籤1
  註:

  標籤也有範圍,並且區分大小寫


note_flow_control.go code list

package mainimport "fmt"func main() {//if...else...if a, b := 2, 3; a == 2 {fmt.Println("a, b = ", a, b)goto Two} else {goto One}One:fmt.Println("goto one")fmt.Println("go 1 ?")Two:fmt.Println("goto two")fmt.Println("go 2?")/********************//*運行結果:        *//*a, b = 2 3        *//*goto two          *//*go 2?             *//********************///switchnum := 2switch num {case 1:fmt.Println("No.1")case 2:fmt.Println("No.2")case 3:fmt.Println("No.3")fallthroughcase 4:fmt.Println("No.4")default:fmt.Println("No.-1")}/*********************//*運行結果:         *//*No.2               *//*如果num=3          *//*No.3               *//*No.4               *//*********************///forsum := 0for i := 1; i <= 100; i++ {sum += i}fmt.Println("1+2+...+100 = ", sum) //1+2+...+100 = 5050sum2, j := 0, 1for ; j <= 100; j++ {sum2 += j}fmt.Println("1+2+...+100 = ", sum2) //1+2+...+100 = 5050sum3, k := 0, 1for k <= 100 {sum3 += kk++}fmt.Println("1+2+...+100 = ", sum3) //1+2+...+100 = 5050sum4, k := 0, 1for {sum4 += kk++if k > 100 {break}}fmt.Println("1+2+...+100 = ", sum4) //1+2+...+100 = 5050}

運行結果:


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.