C和C Plus Plus中的循環

C和C Plus Plus中的循環

當我們需要重複執行一個語句塊時,就會使用編程中的循環。例如:假設我們要打印10次“ Hello World”。可以通過以下兩種方式完成此操作:

迭代法

執行此操作的一種迭代方法是將printf()語句寫入10次。

<code>// C++ program to illustrate need of loops 
#include <iostream>
using namespace std;

int main()
{
cout << "Hello World\\n";
cout << "Hello World\\n";
cout << "Hello World\\n";
cout << "Hello World\\n";
cout << "Hello World\\n";
cout << "Hello World\\n";
cout << "Hello World\\n";
cout << "Hello World\\n";
cout << "Hello World\\n";
cout << "Hello World\\n";
return 0;
} /<iostream>/<code>

輸出:

<code>Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World/<code>

使用循環

在循環中,該語句僅需寫入一次,循環將執行10次,如下所示。

在計算機編程中,循環是指重複執行的指令序列,直到達到特定條件為止。

  • 完成一項操作,例如獲取一項數據並進行更改,然後檢查某些條件,例如計數器是否已達到規定的數量。
  • 未達到計數器:如果計數器尚未達到所需的數目,則序列中的下一條指令將返回到序列中的第一條指令並重復執行。
  • 達到計數器:如果已達到條件,則下一條指令落入到下一條順序指令,或在循環外跳轉。

主要有兩種類型的循環:

  • 入口控制循環:在這種類型的循環中,在進入循環主體之前測試條件。For循環和While循環是入口控制循環。
  • 退出控制的循環:在這種類型的循環中,在循環體的末端測試或評估測試條件。因此,無論測試條件為真還是假,循環體都會至少執行一次。do – while循環是退出控制循環。
C和C Plus Plus中的循環

for 循環

for循環是一種重複控制結構,它使我們可以編寫執行特定次數的循環。 該循環使我們可以在一行中一起執行n個步驟。

語法:

<code>for (initialization expr; test expr; update expr)
{
// body of the loop
// statements we want to execute
}/<code>

在for循環中,使用循環變量來控制循環。首先將此循環變量初始化為某個值,然後檢查此變量是否小於或大於計數器值。如果statement為true,則執行循環主體,並更新循環變量。重複步驟直到退出條件出現。

  • 初始化表達式:在此表達式中,我們必須將循環計數器初始化為某個值。例如:int i = 1;
  • 測試表達式:在此表達式中,我們必須測試條件。如果條件的計算結果為true,則我們將執行循環的主體並更新表達式,否則將退出for循環。例如:i <= 10;
  • 更新表達式:執行循環主體後,此表達式將循環變量增加/減少一些值。例如:i ++;

循環的等效流程圖:

C和C Plus Plus中的循環

例如:

<code>// C++ program to illustrate for loop 
#include <iostream>
using namespace std;

int main()
{
for (int i = 1; i <= 10; i++)

{
cout << "Hello World\\n";
}

return 0;
} /<iostream>/<code>

輸出:

<code>Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World/<code>

While 循環

在研究循環時,我們已經知道迭代次數是事先已知的,即我們需要知道執行循環體的次數。while循環用於事先不知道確切的循環迭代次數的情況。根據測試條件終止循環執行。

語法:

我們已經說過,循環主要由三個語句組成:初始化表達式、測試表達式和更新表達式。這三個循環的語法-For、while和do while在這三個語句的位置上不同。

<code>initialization expression;
while (test_expression)
{
// statements

update_expression;

}/<code>

流程圖:

C和C Plus Plus中的循環

例如:

<code>// C++ program to illustrate while loop 
#include <iostream>
using namespace std;

int main()
{
// initialization expression
int i = 1;

// test expression
while (i < 6)
{
cout << "Hello World\\n";

// update expression
i++;
}

return 0;
} /<iostream>/<code>

輸出:

<code>Hello World
Hello World
Hello World
Hello World
Hello World/<code>

do while 循環

在do while循環中,循環執行也會根據測試條件終止。do while循環和while循環之間的主要區別是在while循環中進行條件測試的條件是在循環主體的末尾進行測試,即do while循環是退出控制的,而其他兩個循環是入口控制的循環。

注意:在do while循環中,無論測試條件如何,循環主體都將至少執行一次。

語法:

<code>initialization expression;
do
{
// statements

update_expression;
} while (test_expression);/<code>

注意:請注意循環末尾的分號(“;”)。

流程圖:

C和C Plus Plus中的循環

例如:

<code>// C++ program to illustrate do-while loop 
#include <iostream>
using namespace std;

int main()
{
int i = 2; // Initialization expression

do
{
// loop body
cout << "Hello World\\n";

// update expression
i++;

} while (i < 1); // test expression

return 0;
} /<iostream>/<code>

輸出:

<code>Hello World/<code>

在上述程序中,測試條件(i<1)評估為false。但是,當循環退出控制時,循環體將執行一次。

無限循環

無限循環(有時稱為無窮循環)是一段缺少功能性退出的代碼,因此它可以無限期地重複。當條件始終為真時,將發生無限循環。通常,這是一個錯誤。

<code>// C++ program to demonstrate infinite loops 
// using for and while
// Uncomment the sections to see the output

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

// This is an infinite for loop as the condition
// expression is blank
for ( ; ; )
{
cout << "This loop will run forever.\\n";
}

// This is an infinite for loop as the condition
// given in while loop will keep repeating infinitely
/*
while (i != 0)
{
i-- ;
cout << "This loop will run forever.\\n";

}
*/

// This is an infinite for loop as the condition
// given in while loop is "true"
/*
while (true)
{
cout << "This loop will run forever.\\n";
}
*/
} /<iostream>/<code>

輸出:

<code>This loop will run forever.
This loop will run forever.
................... /<code>

要點

  • 如果事先知道迭代次數(即需要執行循環主體的次數),則使用for循環。
  • 在不知道確切迭代次數但已知循環終止條件的情況下使用while循環。
  • 如果需要至少執行一次代碼(例如在菜單驅動程序中),請使用do while循環。


分享到:


相關文章: