深入解析Go語言中for迴圈的寫法_Golang

來源:互聯網
上載者:User

for迴圈是一個迴圈控制結構,可以有效地編寫需要執行的特定次數的迴圈。

文法
for迴圈在Go程式設計語言中的文法是:

複製代碼 代碼如下:

for [condition |  ( init; condition; increment ) | Range]
{
   statement(s);
}


下面是控制在一個流程的for迴圈:

如果condition是可用的,那麼對於迴圈只要條件為真時執行。

如果for子句是( init; condition; increment ) 存在則

初始化(init)步驟首先被執行,並且只有一次。這一步可以聲明和初始化任何迴圈控制變數。不需要把一個聲明在這裡,只要有一個分號出現。

接著,條件(condition)進行了評估計算。如果為true,則執行迴圈體。如果是假的,迴圈體不執行,只是之後的for迴圈流量控制跳轉到下一條語句。

for迴圈執行主體之後,控制流程跳回到增量(increment)語句。此語句可以讓你更新任何迴圈控制變數。這個語句可以留空,只要一個分號出現條件後。

condition現在重新評估計算。如果為true,迴圈執行的過程中重複(迴圈體,然後增加步,然後再次條件)。之後如果條件為假,則迴圈終止。

 

如果range可用,然後迴圈執行的範圍內的每個項目。

流程圖:

例子:

複製代碼 代碼如下:

package main

import "fmt"

func main() {
  
   var b int = 15
   var a int

   numbers := [6]int{1, 2, 3, 5}

   /* for loop execution */
   for a := 0; a < 10; a++ {
      fmt.Printf("value of a: %d\n", a)
   }

   for a < b {
      a++
      fmt.Printf("value of a: %d\n", a)
      }

   for i,x:= range numbers {
      fmt.Printf("value of x = %d at %d\n", x,i)
   }  
}


讓我們編譯和運行上面的程式,這將產生以下結果:

value of a: 0value of a: 1value of a: 2value of a: 3value of a: 4value of a: 5value of a: 6value of a: 7value of a: 8value of a: 9value of a: 1value of a: 2value of a: 3value of a: 4value of a: 5value of a: 6value of a: 7value of a: 8value of a: 9value of a: 10value of a: 11value of a: 12value of a: 13value of a: 14value of a: 15value of x = 1 at 0value of x = 2 at 1value of x = 3 at 2value of x = 5 at 3value of x = 0 at 4value of x = 0 at 5

Go語言嵌套for迴圈
Go程式設計語言允許使用一個迴圈內嵌套另一個迴圈。下面的內容展示幾個例子來說明這個概念。

文法
在Go語言中嵌套for迴圈語句的文法如下:

複製代碼 代碼如下:

for [condition |  ( init; condition; increment ) | Range]
{
   for [condition |  ( init; condition; increment ) | Range]
   {
      statement(s);
   }
   statement(s);
}


例子:
下面的程式使用嵌套for迴圈從2至100找出的素數:

複製代碼 代碼如下:

package main

import "fmt"

func main() {
   /* local variable definition */
   var i, j int

   for i=2; i < 100; i++ {
      for j=2; j <= (i/j); j++ {
         if(i%j==0) {
            break; // if factor found, not prime
         }
      }
      if(j > (i/j)) {
         fmt.Printf("%d is prime\n", i);
      }
   } 
}


當上述代碼被編譯和執行時,它產生了以下結果:

2 is prime3 is prime5 is prime7 is prime11 is prime13 is prime17 is prime19 is prime23 is prime29 is prime31 is prime37 is prime41 is prime43 is prime47 is prime53 is prime59 is prime61 is prime67 is prime71 is prime73 is prime79 is prime83 is prime89 is prime97 is prime

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.