版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)家電網(wǎng)招聘考試題庫附參考答案詳解(精練)
- 安全生產(chǎn)報(bào)告制度及流程
- 幼兒園安全生產(chǎn)例檢制度
- 砂石場(chǎng)生產(chǎn)經(jīng)營(yíng)管理制度
- 生產(chǎn)車間半成品區(qū)域管理制度
- 生產(chǎn)業(yè)人力資源管理制度
- 水工生產(chǎn)運(yùn)營(yíng)部部門制度
- 初中英語《助動(dòng)詞》專項(xiàng)練習(xí)與答案 (100 題)
- 制冷設(shè)備生產(chǎn)許可證制度
- 清分部安全生產(chǎn)責(zé)任制度
- 棄土場(chǎng)規(guī)范規(guī)章制度
- 2026年水下機(jī)器人勘探報(bào)告及未來五至十年深海資源報(bào)告
- 安徽省蕪湖市鳩江區(qū)2024-2025學(xué)年高一上學(xué)期期末考試生物試卷
- 2025年對(duì)中國(guó)汽車行業(yè)深度變革的觀察與思考報(bào)告
- 雙重預(yù)防體系建設(shè)自評(píng)報(bào)告模板
- 福建省泉州市晉江市2024-2025學(xué)年八年級(jí)上學(xué)期1月期末考試英語試題(含答案無聽力音頻及原文)
- 專題五 以新發(fā)展理念引領(lǐng)高質(zhì)量發(fā)展
- GB/T 22417-2008叉車貨叉叉套和伸縮式貨叉技術(shù)性能和強(qiáng)度要求
- GB/T 20145-2006燈和燈系統(tǒng)的光生物安全性
- GB/T 1.1-2009標(biāo)準(zhǔn)化工作導(dǎo)則 第1部分:標(biāo)準(zhǔn)的結(jié)構(gòu)和編寫
- 長(zhǎng)興中學(xué)提前招生試卷
評(píng)論
0/150
提交評(píng)論