[C++基礎]迴圈loop介紹 for ,while ,do while

閱讀時間約 7 分鐘

for,while,do while語法介紹



for loop

for比較偏向固定圈數型的迴圈

語法

for(計數變數初值; 布林運算式 ; 增量運算)

{

一般指令;

}
for迴圈 執行流程圖

for迴圈 執行流程圖

計數變數初值:經指定初值之後即不可重覆設定。

 ●負責for-loop初始化的動作。

布林運算式:進入一般指令前迴圈必須測試條件成立,否則離開迴圈。

●負責運算布林條件式,並掌控迴圈的進行。

增量運算式:可為遞增或遞減運算。

● 當一個步驟(程式區塊)完成之後所要進行的動作,step運算通 常指的是計數值的增加或減少

程式範例

利用for迴圈將ASCII印出

#include <iostream>
using namespace std;
int main()
{
printf("ASCII Code \n");
for (int i=1;i<=128;i++)
{
printf("%d=%c\t",i,i); // %d 整數 %c字元 \t 跳格
if(i%5 == 0) //每顯示5個就要換行
printf("\n"); //換行
}
system("pause");
return 0;
}
程式輸出結果圖

程式輸出結果圖

利用for迴圈,累計周支出

依序輸入七天的支出,將會累積輸出總支出

#include <iostream>
using namespace std;
int main()
{
int sum=0, n; //sum儲存支出總數,n儲存輸入數字
for(int i=1; i<=7 ;i++) //執行七次迴圈
{
if(i==7) //如果是第七天就改為星期「日」
cout << "請輸入星期日的支出:";
else
cout << "請輸入星期 " << i << " 的支出:";
cin >> n; //等待使用者輸入
sum += n; //計算總支出
}
cout << "本星期的支出為: " << sum << " 元\n";
system("pause");
return 0;
}
程式輸出結果圖

程式輸出結果圖

While loop

比較偏向不固定的迴圈

while迴圈需先測試條件是否符合,若符合 進入迴圈內執行,直到條件不成立時跳出 迴圈,此種是偏向不固定圈數型的迴圈。

測試運算式,判斷是否為True,是的話執行一般指令,否則不進入迴圈

語法

while(測試運算式)

{

一般指令;

}
while loop 執行流程圖

while loop 執行流程圖

利用while實現從1累加到1000

也可以用for迴圈實現此應用,但while迴圈在使用上,比較靈活,條件到達在跳脫迴圈

#include <iostream>

using namespace std;

int main()
{
int i=1,sum=0;
while(true) //無限迴圈
{
printf("Hello~ 跑第幾 %d 圈了~\n",i);
sum += i; // sum = sum + i
printf("i=%3d sum=%d\n", i , sum);
i++;
if(i > 1000) //印10次後跳出迴圈
break;
}
system("pause");
return 0;
}
raw-image

While結合If,實現上面案例1到1000累加,只加偶數的部分

只有修改15行~18行新增一個if的判斷式讓滿足偶數的部分累加,即可實現

#include <iostream>
using namespace std;
int main()
{
int i=1,sum=0;
while(true) //無限迴圈
{
printf("Hello~ 跑第幾 %d 圈了~\n",i);
if( i%2 != 0)
{
i++;
continue;
}
sum += i; // sum = sum + i
printf("i=%3d sum=%d\n", i , sum);
i++;
if(i > 1000) //印10次後跳出迴圈
break;
}
system("pause");
return 0;
}
程式輸出圖

程式輸出圖

do While loop

其意義大致上與 while-loop 相同, 唯一 的差別是 do-while 至少會先執行 程式主體 1 次

do-while 迴圈是先執行程式區塊後才 判定while 布林條件

do-while循環通常用於確保至少執行一次某個操作,然後再檢查條件。

do

{

一般指令;
}
while(測試條件) ;
do while loop 執行流程圖

do while loop 執行流程圖

do While loop 應用在 使用者密碼

輸入密碼,與原先設定正確才會跳脫迴圈

=#include <iostream>
using namespace std;
int main()
{
string pw; //儲存使用者輸入的密碼
do //建立 do…while 迴圈
{
cout << "請輸入密碼:";
cin >> pw; //等待使用者輸入

}while(pw!="1234"); //如果密碼不正確

cout << "恭喜!密碼正確!\n";
system("pause");
return 0;
}
raw-image

用While loop 也可以實現

#include <iostream>
using namespace std;
int main()
{

string pw; //儲存使用者輸入的密碼

while(true)

{
​cout << "請輸入密碼:";

cin >> pw; //等待使用者輸入

if(pw == "1234")
break;

}
cout << "恭喜!密碼正確!\n";
system("pause");
return 0;

}

若有問題歡迎留言提問,喜歡的話在追蹤,鼓掌 謝謝大家

下一篇 巢狀迴圈介紹 For loop實現氣泡排序法

avatar-img
128會員
213內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
巢狀迴圈For loop介紹結構及範例說明 巢狀迴圈 巢狀迴圈是在一個迴圈內包含另一個迴圈的結構 簡單來說,就是內迴圈做完,才會在跑到外迴圈,接著在做內迴圈
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。
介紹C++ 語法 資料型態,架構說明 程式語言為人類與電腦溝通的工具 程式設計流程: 定義問題 -> 問題分析 -> 撰寫演算法 ->程式撰寫 -> 程式執行及維護
巢狀迴圈For loop介紹結構及範例說明 巢狀迴圈 巢狀迴圈是在一個迴圈內包含另一個迴圈的結構 簡單來說,就是內迴圈做完,才會在跑到外迴圈,接著在做內迴圈
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。
介紹C++ 語法 資料型態,架構說明 程式語言為人類與電腦溝通的工具 程式設計流程: 定義問題 -> 問題分析 -> 撰寫演算法 ->程式撰寫 -> 程式執行及維護
你可能也想看
Google News 追蹤
Thumbnail
這篇內容,將會講解什麼是「repeat迴圈」,以及與「repeat迴圈」相關的知識。包括repeat迴圈的簡介、break、continue。
Thumbnail
這篇內容,將會講解什麼是「while迴圈」,以及與「while迴圈」相關的知識。包括while迴圈的簡介、while迴圈、break、continue。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
for loop、while loop、repeat
Thumbnail
本章節主要介紹了JavaScript中的流程控制,包括條件語句(如if、else if、else和三元運算子)和循環結構(如for迴圈、while迴圈等)。同時,也提供了如何使用break、continue和label來控制迴圈的執行。
Thumbnail
本文是C#入門教程的一部分,涵蓋了流程控制的各種語句與迴圈。這包括if、else if和else語句,三元運算子,switch語句,以及for、foreach和while迴圈。文中還介紹了如何在迴圈中使用break、continue、return和goto語句。
※ 迴圈控制的兩個指令:break(跳脫)、continue(繼續) break(跳脫):當遇到一個需要強制脫離迴圈的情境,使用break(跳脫)就會直接跳出迴圈。 continue(繼續):用於跳過迴圈目前的迭代,直接開始下一次迭代的執行。 造成無限迴圈的例子: 說明: 當 x 的值
※ 何謂巢狀迴圈(NESTD LOOP): 指的是一個迴圈內包含另一個迴圈的結構。在程式設計中,這種結構常用於需要進行多層次迭代的場合,例如處理多維數組、逐行逐列處理表格資料等。 ※ 例子:九九乘法表 說明: 外層迴圈:for (let i = 1; i <= 9; i = i + 1) 這
※ 迴圈(for loop)介紹: 迴圈的用途是重複執行程式碼,只要條件滿足,就會執行特定的動作。 for (let i = 0; i < 10; i = i + 1) { console.log(i); } 說明: for:對於。 let:因為迭代器的數值會一直改變所以要用let
Thumbnail
這篇內容,將會講解什麼是「repeat迴圈」,以及與「repeat迴圈」相關的知識。包括repeat迴圈的簡介、break、continue。
Thumbnail
這篇內容,將會講解什麼是「while迴圈」,以及與「while迴圈」相關的知識。包括while迴圈的簡介、while迴圈、break、continue。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
for loop、while loop、repeat
Thumbnail
本章節主要介紹了JavaScript中的流程控制,包括條件語句(如if、else if、else和三元運算子)和循環結構(如for迴圈、while迴圈等)。同時,也提供了如何使用break、continue和label來控制迴圈的執行。
Thumbnail
本文是C#入門教程的一部分,涵蓋了流程控制的各種語句與迴圈。這包括if、else if和else語句,三元運算子,switch語句,以及for、foreach和while迴圈。文中還介紹了如何在迴圈中使用break、continue、return和goto語句。
※ 迴圈控制的兩個指令:break(跳脫)、continue(繼續) break(跳脫):當遇到一個需要強制脫離迴圈的情境,使用break(跳脫)就會直接跳出迴圈。 continue(繼續):用於跳過迴圈目前的迭代,直接開始下一次迭代的執行。 造成無限迴圈的例子: 說明: 當 x 的值
※ 何謂巢狀迴圈(NESTD LOOP): 指的是一個迴圈內包含另一個迴圈的結構。在程式設計中,這種結構常用於需要進行多層次迭代的場合,例如處理多維數組、逐行逐列處理表格資料等。 ※ 例子:九九乘法表 說明: 外層迴圈:for (let i = 1; i <= 9; i = i + 1) 這
※ 迴圈(for loop)介紹: 迴圈的用途是重複執行程式碼,只要條件滿足,就會執行特定的動作。 for (let i = 0; i < 10; i = i + 1) { console.log(i); } 說明: for:對於。 let:因為迭代器的數值會一直改變所以要用let