Go語言中循環(huán)語句使用的示例詳解_第1頁
Go語言中循環(huán)語句使用的示例詳解_第2頁
Go語言中循環(huán)語句使用的示例詳解_第3頁
Go語言中循環(huán)語句使用的示例詳解_第4頁
Go語言中循環(huán)語句使用的示例詳解_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Go語言中循環(huán)語句使用的示例詳解目錄一、概述1.循環(huán)控制語句2.無限循環(huán)二、Go語言for循環(huán)1.語法2.for語句執(zhí)行過程3.示例4.For-eachrange循環(huán)三、循環(huán)嵌套1.語法2.示例四、break語句1.語法2.示例五、continue語句1.語法2.示例六、goto語句1.語法2.示例

一、概述

在不少實(shí)際問題中有許多具有規(guī)律性的重復(fù)操作,因此在程序中就需要重復(fù)執(zhí)行某些語句。

循環(huán)程序的流程圖:

Go語言提供了以下幾種類型循環(huán)處理語句:

循環(huán)類型描述for循環(huán)重復(fù)執(zhí)行語句塊循環(huán)嵌套循環(huán)中嵌套一個(gè)或多個(gè)for循環(huán)

1.循環(huán)控制語句

循環(huán)控制語句可以控制循環(huán)體內(nèi)語句的執(zhí)行過程。

GO語言支持以下幾種循環(huán)控制語句:

控制語句描述break語句經(jīng)常用于中斷當(dāng)前for循環(huán)或跳出switch語句continue語句跳過當(dāng)前循環(huán)的剩余語句,然后繼續(xù)進(jìn)行下一輪循環(huán)goto語句將控制轉(zhuǎn)移到被標(biāo)記的語句

2.無限循環(huán)

如果循環(huán)中條件語句永遠(yuǎn)不為false則會(huì)進(jìn)行無限循環(huán),我們可以通過for循環(huán)語句中只設(shè)置一個(gè)條件表達(dá)式來執(zhí)行無限循環(huán):

示例

packagemain

import(

"fmt"

"time"

funcmain(){

i:=0

fortrue{//for后面true為可選,若不加,默認(rèn)為true

fmt.Printf("i:%v\n",i)

time.Sleep(time.Second)

輸出結(jié)果如下

i:0

i:1

i:2

i:3

i:4

i:5

i:6

i:7

二、Go語言for循環(huán)

1.語法

for循環(huán)是一個(gè)循環(huán)控制結(jié)構(gòu),可以執(zhí)行指定次數(shù)的循環(huán)

語法:

//Go語言的For循環(huán)有3種形式,只有其中的一種使用分號(hào)

//和C語言的for一樣:

forinit;condition;post{}

//和C的while一樣:

forcondition{}

//和C的for(;;)一樣:

for{}

init:一般為賦值表達(dá)式,給控制變量賦初值

condition:關(guān)系表達(dá)式或邏輯表達(dá)式,循環(huán)控制條件

post:一般為賦值表達(dá)式,給控制變量增量或減量。

2.for語句執(zhí)行過程

①先對(duì)表達(dá)式1賦初值;

②判別賦值表達(dá)式init是否滿足給定條件,若其值為真,滿足循環(huán)條件,則執(zhí)行循環(huán)體內(nèi)語句,然后執(zhí)行post,進(jìn)入第二次循環(huán),再判別condition;否則判斷condition的值為假,不滿足條件,就終止for循環(huán),執(zhí)行循環(huán)體外語句。

for循環(huán)的range格式可以對(duì)slice、map、數(shù)組、字符串等進(jìn)行迭代循環(huán)。

格式如下:

forkey,value:=rangeoldMap{

newMap[key]=value

}

for語句語法流程如下圖所示:

3.示例

計(jì)算1到10的數(shù)字之和

packagemain

import"fmt"

funcmain(){

sum:=0

fori:=0;i=10;i++{

sum+=i

fmt.Printf("sum:%v\n",sum)

輸出結(jié)果為:

55

int和post參數(shù)是可選的,我們可以直接省略他,類型while語句

packagemain

import"fmt"

funcmain(){

sum:=0

i:=1

fori=10{

sum+=i

fmt.Printf("sum:%v\n",sum)

}

計(jì)算0-100間偶數(shù)的和

//求出0-100的偶數(shù)和

packagemain

import"fmt"

funcmain(){

a:=0

fori:=1;i=100;i++{

ifi%2==0{

a+=i

fmt.Printf("a:%v\n",a)

輸出結(jié)果如下

2550

//方法二

packagemain

import"fmt"

funcmain(){

sum:=0

fori:=0;i=100;i+=2{

sum+=i

fmt.Printf("sum:%v\n",sum)

}

4.For-eachrange循環(huán)

這種格式的循環(huán)可以對(duì)字符串、數(shù)組、切片等進(jìn)行迭代輸出元素

示例

//循環(huán)數(shù)組

packagemain

import"fmt"

funcmain(){

names:=[]int{20,30,40,50,60}

//a獲取key,b獲取value

fora,b:=rangenames{

fmt.Print("key:",a,"value:",b,"\n")

輸出結(jié)果如下

key:0value:20

key:1value:30

key:2value:40

key:3value:50

key:4value:60

//使用空白標(biāo)識(shí)符直接獲取value

packagemain

import"fmt"

funcmain(){

names:=[]int{20,30,40,50,60}

//a獲取key,b獲取value

for_,b:=rangenames{

fmt.Print("value:",b,"\n")

輸出結(jié)果

value:20

value:30

value:40

value:50

value:60

三、循環(huán)嵌套

Go語言允許用戶在循環(huán)內(nèi)使用循環(huán)

1.語法

以下為Go語言嵌套循環(huán)的格式:

for[condition|(init;condition;increment)|Range]

for[condition|(init;condition;increment)|Range]

statement(s);

statement(s);

}

2.示例

以下實(shí)例使用循環(huán)嵌套來輸出2到100間的素?cái)?shù):

packagemain

import"fmt"

funcmain(){

/*定義局部變量*/

vari,jint

fori=2;i100;i++{

forj=2;j=(i/j);j++{

if(i%j==0){

break;//如果發(fā)現(xiàn)因子,則不是素?cái)?shù)

if(j(i/j)){

fmt.Printf("%d是素?cái)?shù)\n",i);

輸出結(jié)果如下

2是素?cái)?shù)

3是素?cái)?shù)

5是素?cái)?shù)

7是素?cái)?shù)

11是素?cái)?shù)

13是素?cái)?shù)

17是素?cái)?shù)

19是素?cái)?shù)

23是素?cái)?shù)

29是素?cái)?shù)

31是素?cái)?shù)

37是素?cái)?shù)

41是素?cái)?shù)

43是素?cái)?shù)

47是素?cái)?shù)

53是素?cái)?shù)

59是素?cái)?shù)

61是素?cái)?shù)

67是素?cái)?shù)

71是素?cái)?shù)

73是素?cái)?shù)

79是素?cái)?shù)

83是素?cái)?shù)

89是素?cái)?shù)

97是素?cái)?shù)

99乘法表:

packagemain

import"fmt"

funcmain(){

fori:=1;ii++{

forj:=1;ji+1;j++{

fmt.Printf("%d*%d=%d\t",i,j,j*i)

fmt.Println()

輸出結(jié)果如下

1*1=1

2*1=22*2=4

3*1=33*2=63*3=9

4*1=44*2=84*3=124*4=16

5*1=55*2=105*3=155*4=205*5=25

6*1=66*2=126*3=186*4=246*5=306*6=36

7*1=77*2=147*3=217*4=287*5=357*6=427*7=49

8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64

9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81

四、break語句

1.語法

Go語言中break語句用于以下兩方面:

用于循環(huán)語句中跳出循環(huán),并開始執(zhí)行循環(huán)之后的語句。

break在switch(開關(guān)語句)中在執(zhí)行一條case后跳出語句的作用。

在多重循環(huán)中,可以用標(biāo)號(hào)label標(biāo)出想break的循環(huán)。

break語法格式如下:

break;

流程如圖:

2.示例

在變量a大于15的時(shí)候跳出循環(huán):

packagemain

import"fmt"

funcmain(){

varaint=10

fora20{

fmt.Printf("a:%v\n",a)

ifa15{

break

執(zhí)行結(jié)果如下

a:10

a:11

a:12

a:13

a:14

a:15

演示使用標(biāo)記和不使用標(biāo)記的區(qū)別

packagemain

import"fmt"

funcmain(){

//不適用標(biāo)記

fmt.Println("----break----")

fori:=1;ii++{

fmt.Printf("i:%v\n",i)

fora:=11;a=13;a++{

fmt.Printf("a:%v\n",a)

break

//使用標(biāo)記

fmt.Println("----breaklabel----")

fori:=1;ii++{

fmt.Printf("i:%v\n",i)

fora:=11;a=13;a++{

fmt.Printf("a:%v\n",a)

breakfla

輸出結(jié)果如下

----break----

i:1

a:11

i:2

a:11

i:3

a:11

----breaklabel----

i:1

a:11

五、continue語句

1.語法

Go語言的continue語句有點(diǎn)像break語句。但是continue不是跳出循環(huán),而是跳過當(dāng)前循環(huán)執(zhí)行下一次循環(huán)語句。

for循環(huán)中,執(zhí)行continue語句會(huì)觸發(fā)for增量語句的執(zhí)行。

在多重循環(huán)中,可以用標(biāo)號(hào)label標(biāo)出想continue的循環(huán)。

continue語法格式如下:

continue;

continue語句流程圖如下:

2.示例

在變量a等于15的時(shí)候跳過本次循環(huán)執(zhí)行下一次循環(huán):

packagemain

import"fmt"

funcmain(){

varaint=10

fora20{

ifa==15{

a=a+1

continue

fmt.Printf("a:%v\n",a)

輸出結(jié)果如下

a:10

a:11

a:12

a:13

a:14

a:16

a:17

a:18

a:19

用多重循環(huán)演示使用標(biāo)記和不使用標(biāo)記的區(qū)別:

packagemain

import"fmt"

funcmain(){

//不使用標(biāo)記

fmt.Println("----continue----")

fori:=1;ii++{

fmt.Printf("i:%d\n",i)

fora:=11;a=13;a++{

fmt.Printf("a:%d\n",a)

continue

//使用標(biāo)記

fmt.Println("----continuelabel----")

fori:=1;ii++{

fmt.Printf("i:%d\n",i)

fora:=11;a=13;a++{

fmt.Printf("a:%d\n",a)

continuere

輸出結(jié)果如下

----continue----

i:1

a:11

a:12

a:13

i:2

a:11

a:12

a:13

i:3

a:11

a:12

a:13

----continuelabel----

i:1

a:11

i:2

a:11

i:3

a:11

六、goto語句

1.語法

Go語言的goto語句可以無條件地轉(zhuǎn)移到過程中指定的行

goto語句通常與條件語句配合使用,可用來實(shí)現(xiàn)條件轉(zhuǎn)移,構(gòu)成循環(huán),跳出循環(huán)體等功能。

但是,在結(jié)構(gòu)化程序設(shè)計(jì)中一般不主張使用goto語句,以免造成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論