1. 程式人生 > >C語言中三種迴圈的巢狀和比較

C語言中三種迴圈的巢狀和比較

1、迴圈的巢狀

一個迴圈體內又包含另一個完整的迴圈結構,稱為迴圈的巢狀。內嵌的迴圈中還可以巢狀迴圈,這就是多層迴圈。各種語言中關於迴圈的巢狀的概念都是一樣的。
  C語言中3種迴圈(while迴圈、do…while迴圈和for迴圈)可以互相巢狀。例如,下面幾種都是合法的形式:
(1)while迴圈包含while迴圈的內層迴圈

while()
{
	...
	while()
	{
		...
	}
 } 

(2)do…while迴圈包含do…while迴圈的內層迴圈

do
{
	...
	do
	{
		...
	}while();
	
 }while();

(3)for迴圈包含for迴圈的內層迴圈

{
	...
	for( ; ; )
	{
		...
	}
 }

(4)while迴圈包含do…while迴圈的內層迴圈

while()
{
	...
	do
	{
		...
	}
	while();
 }

(5)for迴圈包含while迴圈的內層迴圈

for( ; ; )
{
	...
	while()
	{
		...
	}
	...
 }

(6)do…while迴圈包含for迴圈的內層迴圈

do
{
	...
	for( ; ; )
	{
		...
	}
	
} while();

2、幾種迴圈的比較

(1) 3種迴圈都可以用來處理同一問題,一般情況下它們可以互相代替。
(2) 在while迴圈和do…while迴圈中,只在while後面的括號內指定迴圈條件,因此為了使迴圈能正常結束,應在迴圈體中包含使迴圈趨於結束的語句(如i++,或i=i+1等)。
  for迴圈可以在表示式3中包含使迴圈趨於結束的操作,甚至可以將迴圈體中的操作全部放到表示式3中。因此for語句的功能更強,凡用while迴圈能完成的,用for迴圈都能實現。
(3) 用while和do…while迴圈時,迴圈變數的初始化的操作應在while和do…while語句之前完成。而for語句可以在表示式1中實現迴圈的初始化。
(4) while迴圈、do…while迴圈和for迴圈,都可以用break語句跳出迴圈,用continue語句結束本次迴圈。
上述說的表示式3是指for迴圈中的表示式3:

for(表示式1;表示式2;表示式3) 語句