C++控制結構-迴圈語句
迴圈語句控制結構在應用程式中主要用於重複執行程式碼體操作,直到條件不滿足的情況下終止。迴圈語句主要包含while、do/while以及for三類控制語句,其基本概念及使用方式將會通過不同的小節分別介紹。
5.3.1 while語句
C++語言提供的控制結構最後一種就是迴圈控制結構,該結構可以讓程式在設定的條件之內作重複執行操作。迴圈控制結構在C++中包含3個基本結構,while、do…while和for迴圈控制語句。這裡首先看第一種迴圈while結構的基本語法定義如下所示。
while(表示式)
{
… //程式碼塊
}
while迴圈控制,沒有初始化以及更新條件值部分。只通過計算表示式的值是否為真,為真即執行隨後的程式碼塊,如此反覆。直到測試條件不為真則跳出該迴圈體。通常為了能夠正確退出while
1.準備例項
開啟UE工具,建立新的空檔案並且另存為chapter0503.cpp。該程式碼檔案隨後會同makefile檔案一起通過FTP工具傳輸至Linux伺服器端,客戶端通過scrt工具訪問操作。程式程式碼檔案編輯如下所示。
/**
* 例項chapter0503
* 原始檔chapter0503.cpp
* 計算字串長度
*/
#include <iostream>
#include <string>
using namespace std;
/*主程式入口*/
int main()
{
stringvalue; //定義字串變數value
int i= 0; //定義整型變數,並賦初值為0
cout<<"pleaseinput string:"<<endl; //列印輸入字串提示資訊
cin>>value; //
while(value[i]!= '\0') //while迴圈測試條件,當字串中字元不為結束字元時為真
{
++i; //迴圈體,每迴圈判斷一次計數增加1
}
cout<<"Thisstring's length:"<<i<<endl;
return0;
}
上述例項主要演示while迴圈結構的使用情況。程式中應用到字串變數當作字元陣列使用的情形,關於這部分知識詳細講述會在字串章節介紹。初學者這時重點只需要掌握while迴圈結構的基本用法。
2.編輯makefile
Linux平臺下需要編譯原始檔為chapter0503.cpp,相關makefile工程檔案編譯命令編輯如下所示。
OBJECTS=chapter0503.o
CC=g++
chapter0503: $(OBJECTS)
$(CC)$(OBJECTS) -g -o chapter0503
clean:
rm -fchapter0503 core $(OBJECTS)
submit:
cp -f -rchapter0503 ../bin
cp -f -r*.h ../include
上述makefile檔案套用前面的模板格式,主要替換了程式碼檔案、程式編譯中間檔案、可執行程式等。在編譯命令部分-g選項的加入,表明程式編譯同時加入了可調式資訊。
3.編譯執行程式
當前shell下執行make命令,生成可執行程式檔案,隨後通過make submit命令提交程式檔案至本例項bin目錄,通過cd命令定位至例項bin目錄,執行該程式檔案執行結果如下所示。
[[email protected] src]$ make
g++ -c -ochapter0503.o chapter0503.cpp
g++ chapter0503.o -g -o chapter0503
[[email protected] src]$ make submit
cp -f -r chapter0503 ../bin
cp -f -r *.h ../include
[[email protected]]$ cd ../bin
[[email protected]]$ ./chapter0503
please input string:
teststring
This string's length:10
該例項程式主要利用while迴圈實現輸入字串長度計算,這裡使用到string型別字串。由於字串都是由'\0'結尾,所以測試條件中可以判斷字元是否為'\0'。如果不是,則繼續計數變數i+1向下一個字元作判斷,直到走到最末尾的'\0'為止跳出該迴圈。這裡使用了整型計數變數i,用來記錄字串長度。
5.3.2 do…while語句
do…while迴圈不同於while結構。該結構首先需要執行一次迴圈體,隨後再針對while條件進行判斷是否需要繼續執行迴圈體。do…while迴圈結構基本語法定義如下所示。
do
{
… //迴圈體
}while(測試條件);
該結構預先會執行do關鍵字之後的迴圈體中的程式碼塊,之後開始判斷while的測試條件。條件結果值為真,則繼續執行do後續的迴圈體。條件結果值為假,則跳出該迴圈。最後以分號為結尾的do/while結構整體可以看作一條語句。do/while迴圈結構至少執行一次迴圈體,這是與while迴圈結構最大的區別之處。下面通過一個完整例項瞭解do/while結構區別於while結構的應用情況。
1.準備例項
開啟UE工具,建立新的空檔案並且另存為chapter0504.cpp。該程式碼檔案隨後會同makefile檔案一起通過FTP工具傳輸至Linux伺服器端,客戶端通過scrt工具訪問操作。程式程式碼檔案編輯如下所示。
/**
* 例項chapter0504
* 原始檔chapter0504.cpp
* 例項do…while結構
*/
#include <iostream>
using namespace std;
/*主程式入口*/
int main()
{
constint size = 3; //定義整型常量size,其值為3
int i= 0; //定義整型變數i,初始化0值
do //執行do結構部分
{
cout<<"ivalue:"<<i<<endl; //列印整型變數i值
i++; //更新整型變數i值
}while(i< size); //while條件,即為是否退出迴圈判斷條件
return0;
}
上述例項主要演示do…while結構在實際應用中的使用情況。該程式主要用於迴圈列印輸出條件之內的遞增值,必須注意的是該結構至少會執行一次do中的程式碼體。
2.編輯makefile
Linux平臺下需要編譯原始檔為chapter0504.cpp,相關makefile工程檔案編譯命令編輯如下所示。
OBJECTS=chapter0504.o
CC=g++
chapter0504: $(OBJECTS)
$(CC)$(OBJECTS) -g -o chapter0504
clean:
rm -fchapter0504 core $(OBJECTS)
submit:
cp -f -rchapter0504 ../bin
cp -f -r*.h ../include
上述makefile檔案套用前面的模板格式,主要替換了程式碼檔案、程式編譯中間檔案、可執行程式等。在編譯命令部分-g選項的加入,表明程式編譯同時加入了可調式資訊。
3.編譯執行程式
當前shell下執行make命令,生成可執行程式檔案,隨後通過make submit命令提交程式檔案至本例項bin目錄,通過cd命令定位至例項bin目錄,執行該程式檔案執行結果如下所示。
[[email protected] src]$ make
g++ -c -o chapter0504.o chapter0504.cpp
g++ chapter0504.o -g -o chapter0504
[[email protected] src]$ make submit
cp -f -r chapter0504 ../bin
cp -f -r *.h ../include
[[email protected] src]$ cd ../bin
[[email protected] bin]$ ./chapter0504
i value:0
i value:1
i value:2
如上例項中使用了do/while控制結構,主要用於列印符合測試條件的變數i值。首先定義整型常量size,該常量值為3在整個程式中保持不變。隨後定義整型條件變數i並且初始化為0值。由於do/while結構第一次優先執行do後代碼體,所以首先列印變數i的初始值0,後更新該條件變數i以便於能夠達到退出該迴圈的條件,否則會陷入死迴圈中。隨後while中判斷i<size的條件是否成立,成立則繼續執行do後的程式碼體,不成立則退出該迴圈結構。
5.3.3 for語句
C++提供for迴圈控制結構可以用來直接處理重複的任務,該結構基本語法定義如下所示。
for(初始化表示式;測試條件;更新表示式值)
{
… //迴圈體
}
for迴圈主要包括兩個部分組成,即迴圈條件和迴圈體。迴圈條件則由初始化表示式、測試條件以及更新初始化表示式值三個部分組成。
下面通過一些for迴圈控制定義,瞭解for迴圈控制結構基本使用情況,例項定義如下所示。
const int size = 10; //定義整型常量size,常量值為10
for(int i = 0;i < size;i++) //for迴圈結構
{
cout<<”ivalue:”<<endl; //for控制結構的程式碼體
}
int i; //for表示式外部定義,此處為整型變數i
for(i = 0;i < size;i++) //外部定義內部初始化表示式的for結構
{
… //for控制結構的程式碼體
}
for(;i < size;) //只有判斷條件的for控制結構
{
cout<<”ivalue:”<<i<<endl; //for控制結構的程式碼體
++i; //程式碼體中更新for表示式值
}
for(;;) //空for迴圈,表示無限迴圈
{
…
}
以上例項分別定義了for迴圈結構的四種操作方式,首先在外部定義了常量size表示for迴圈中判斷值。隨後第一個for迴圈結構,遵循for迴圈語法結構定義方式,分別為for迴圈中初始化表示式即定義整型變數i並初始化為0值,該初始化操作在這個for迴圈中只執行一次。之後定義for迴圈的測試條件即i值必須小於size值才能為真。隨後執行程式碼體部分列印i值資訊程式碼,之後執行更新表示式值操作,然後再進行測試條件直到不滿足為止跳出迴圈體。
由於第一個表示式中整型變數i是在for迴圈中定義的,所以其變數域只能在for迴圈整個結構中操作,外部無法操作該變數。為了能使的外部也能操作該表示式,那麼第二種情況在外部定義整型變數i,在for迴圈中進行初始化後使用。第三種for迴圈結構省略了表示式定義初始化以及更新表示式部分,直接使用測試條件,隨後在for程式碼體內部更新該表示式值,再重新測試條件執行。
最後一個for結構省略了該迴圈中三個部分,此時程式陷入無限迴圈中,在某些特殊場合無限迴圈的應用是存在的,其程式碼體中可以執行一些檢測類工作,用於那些應用程序啟動後不斷掃描檢測處理事務的場合。
5.3.3 例項5-3迴圈語句程式
迴圈控制結構前兩種while與do/while結構在講述其基本語法概念同時都配合例項作了應用講述。下面通過一個完整的簡單例項來演示for迴圈控制結構通常在程式中的使用情況。
1.準備例項
開啟UE工具,建立新的空檔案並且另存為chapter0505.cpp。該程式碼檔案隨後會同makefile檔案一起通過FTP工具傳輸至Linux伺服器端,客戶端通過scrt工具訪問操作。程式程式碼檔案編輯如下所示。
/**
* 例項chapter0505
* 原始檔chapter0505.cpp
* 迴圈語句程式例項
*/
#include <iostream>
using namespace std;
/*主程式入口*/
int main()
{
intmax; //定義整型變數max
intsum = 0; //定義整型變數sum,表示1~max數之和
cout<<"pleaseinput a value:"<<endl; //提示輸入max整型值
cin>>max; //輸入max值
for(inti = 0;i <= max;i++) //以小於max值為迴圈條件,執行迴圈操作
{
sum+= i; //執行1~max值之和操作
}
cout<<"Thevalue's sum:"<<sum<<endl; //列印1~max之間數之和
return0;
}
上述例項主要演示for迴圈結構的一般性使用情況。本程式通過從鍵盤輸入整型數,用來決定for迴圈的上限。初學者在本例項中主要掌握for迴圈結構的一般使用方法,更多for迴圈操作的技巧將會在後續各章例項程式中展示。
2.編輯makefile
Linux平臺下需要編譯原始檔為chapter0505.cpp,相關makefile工程檔案編譯命令編輯如下所示。
OBJECTS=chapter0505.o
CC=g++
chapter0505: $(OBJECTS)
$(CC)$(OBJECTS) -g -o chapter0505
clean:
rm -fchapter0505 core $(OBJECTS)
submit:
cp -f -rchapter0505 ../bin
cp -f -r*.h ../include
上述makefile檔案套用前面的模板格式,主要替換了程式碼檔案、程式編譯中間檔案、可執行程式等。在編譯命令部分-g選項的加入,表明程式編譯同時加入了可調式資訊。
3.編譯執行程式
當前shell下執行make命令,生成可執行程式檔案,隨後通過make submit命令提交程式檔案至本例項bin目錄,通過cd命令定位至例項bin目錄,執行該程式檔案執行結果如下所示。
[[email protected] src]$ make
g++ -c -o chapter0505.o chapter0505.cpp
g++ chapter0505.o -g -o chapter0505
[[email protected]ocalhost src]$ make submit
cp -f -r chapter0505 ../bin
cp -f -r *.h ../include
[[email protected]]$ cd ../bin
[[email protected]]$ ./chapter0505
please input a value:
100
The value's sum:5050
以上例項主要實現1~max使用者輸入的最大值之間數相加取和的功能,根據使用者輸入的迴圈最大值max為for迴圈測試條件。當用戶輸入max值後,進入for迴圈操作部分,首先在for迴圈內部定義整型i並初始化為0,該操作在整個迴圈結構中只執行一次。隨後執行測試條件,判斷此時變數i是否正確在使用者確定的範圍值之內。如果條件為真,則執行for迴圈體中的操作,將1~max之間0~i數相加,之後更新條件表示式值,再繼續判斷for迴圈的測試條件,如果為真繼續執行迴圈程式碼體,如果不為真則跳出迴圈體,最後列印1~max數和的值sum。
相關推薦
C++控制結構-迴圈語句
迴圈語句控制結構在應用程式中主要用於重複執行程式碼體操作,直到條件不滿足的情況下終止。迴圈語句主要包含while、do/while以及for三類控制語句,其基本概念及使用方式將會通過不同的小節分別介紹。 5.3.1 while語句 C++語言提供的控制結構最後一種就是迴圈控制結構,該結構可以讓程式在設定的
《Java從入門到失業》第三章:基礎語法及基本程式結構(3.8):流程控制(迴圈語句、while語句、for語句)
3.8.2迴圈語句 3.8.2.1while語句 最近這些年買彩票只能去投注站買,早些年,筆者經常是在網上買。在網上買有個功能:追號。就是假如你想一直買同一組號碼,直到中大獎為止。你可以設定一個條件,比如中了頭獎就不繼續買了,如果沒有中頭獎,下一期繼續買同
(7)javascript的程序控制結構及語句------(2)循環控制語句、跳轉語句、對話框
對話 ima bsp .cn while語句 prompt 彈出 asc div 一、循環控制語句 循環語句主要就是在滿足條件的情況下反復執行某一個操作,循環控制語句主要包括while語句、do...while語句 和for語句。 1、While
(6)javascript的程序控制結構及語句-----(1)條件判斷
江湖 too 分支語句 copy 表達 demo oct alt javascrip 程序控制結構及語句 編程就是將現實應用,轉換為程序能夠讀得懂的語法語句。Javascript編程中對程序流程控制主要是通過條件判斷語句、循環控制語句及continue、break來完成的
以猜數字遊戲為例理解C語言while迴圈語句和if條件
迴圈語句和條件語句是程式語言的基礎, 而while迴圈語句與if條件語句是條件語句和迴圈語句的基礎. 因此我們在學習C語言的開始要好好學習與認真思考著兩個語句. 本次將藉助簡單的猜數字遊戲開幫助大家理解. 首先我們會讓系統隨機獲得一個數字,然後讓玩家輸入一個數字,系統會提醒是"高了"
3 條件控制和迴圈語句&函式&面向物件程式設計&模組&包&檔案和異常
if if condition:T_execute if condition:T_execute else:F_execute if condition1:condition1_execute elif condition2:condition2_exec
Java--流程控制之迴圈語句
前言 迴圈語句可以在滿足迴圈條件的情況下,反覆執行某一段程式碼,這段被重複執行的程式碼被稱為迴圈體語句,當反覆執行這個迴圈體時,需要在合適的時候把迴圈判斷條件修改為false,從而結束迴圈,否則迴圈將一直執行下去,形成死迴圈。 內容 1. for – 迴圈語句
3 條件控制和迴圈語句&函式&面向物件程式設計&模組&包&檔案和異常
繼承:程式中當我們定義一個class的時候,可以從某個現有的class繼承,新的class稱之為子類(Subclass),而被繼承的class稱之為基類、父類或超類;子類繼承了其父類的所有屬性和方法,同時還可以定義自己的屬性和方法 class 子類(父類): def __init__(self,...):
scala學習之內建控制結構->for語句
scala初學者,高手勿噴 O(∩_∩)O~ For 表示式 一、列舉集合類 程式碼: val fileHere = (new java.io.File("c:\\")).listFiles for(file <- fileHere) println(file)
第八節、AHK流程控制之迴圈語句
AHK流程控制之迴圈語句 執行一系列重複的操作:迴圈 一、loop 迴圈 1、Loop,count Count:指定迴圈的次數,如果省略了,它就無限迴圈,可使用break或return關鍵字退出迴圈
C 資料結構迴圈連結串列(帶環連結串列)基本操作
經典迴圈連結串列之約瑟夫問題:標號從1到n的n個人圍成一個圈,從1開始計數到m的人退出圈子,然後從退出的下一個人開始接著從1計數,數到m的人後繼續退出,最後只剩下一個人,求剩下人的編號。這便是約瑟夫問題的模型。 經典迴圈連結串列之魔術師發牌問題:魔術師手中有A、2、3……J
c語言-----用迴圈語句實現金字塔,左對齊
c語言中的迴圈語句有三種,while迴圈,do,while迴圈,和for迴圈. 1. while語句 2.for語句 3.do ...while語句 例項:
C語言for迴圈語句的執行順序
#include<stdio.h> int main() { int i; for(i=0;i<5;i++) { printf("%d\n",i); } return
C++ 控制結構和函式(三)—— 函式II(Functions II)
引數按數值傳遞和按地址傳遞(Arguments passed by value and by reference) 到目前為止,我們看到的所有函式中,傳遞到函式中的引數全部是按數值傳遞的(by value)。也就是說,當我們呼叫一個帶有引數的函式時,我們傳遞到函式中的是變
C++中for迴圈語句簡析
1 for迴圈語句概述 for迴圈語句的語法是 for(初始化語句; 條件語句; 表示式語句) { 執行語句; } 其中,初始化語句用於每次迴圈過程中都要修改的變數進行初始化;而條件語句用來控制
03: 迴圈結構 case語句 、 函式及中斷控制 總結和答疑
Top NSD SHELL DAY03 案例1:使用for迴圈結構 案例2:使用while迴圈結構 案例3:基於case分支編寫指令碼 案例4:使用Shell函式 案例5:中斷及退出 1 案例1:使用for迴圈結構 1.1 問題 本案例要求
第 6章 C控制語句:迴圈
迴圈是一個強大的程式設計工具。在建立一個迴圈時應特別注意三個方面: 明確定義結束迴圈的條件 確保在迴圈判斷中使用的值在第一次使用之前已經初始化 確保迴圈在每個週期中更新了判斷值 6.1 while 迴圈 while 語句是一個入口條件迴圈,其一般形式為: whi
Java程式結構、if-else和switch條件選擇、for與while與do-while迴圈及beak和continue控制跳轉語句
Java程式的流程控制 Java流程控制提供了控制程式的基本手段,使得程式能夠按照正確的順序逐步執行,以實現特定的功能。Java流程控制結構分為:順序結構、選擇結構、迴圈結構。 順序結構 Java應用程式都是從main()方法開始執行的。程式一般是按照書寫順序依次向下執行,直
分支語句——c++程式的控制結構1
程式 由若干條語句組成,各語句按照順序一條一條地執行,這種順序結構是簡潔的。但在現實世界中,在解決問題的過程中,不可避免地遇到需要進行選擇戊需要迴圈I作的情況。這時,程式執行的順序需要發生變化,而非從前向後逐一執行。因此程式中除了順序結構以外,通常還有選擇結構迴圈結構以及轉移機制。 if
C語言練習題一: 《C Primer Plus》第六章 C控制語句:C迴圈——程式設計練習題 參考答案
1. 編寫一個程式,建立一個包含 26 個元素的陣列,並在其中儲存 26 個小寫字母。然後列印陣列的所有內容。#include<stdio.h> int main() { char alphabet[26]; int i = 0; char