程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言中的各種循環

C語言中的各種循環

編輯:關於C

C程序在默認情況下,是自頂向下執行,從main()的起始位置開始,逐條地執行語句,直到main()函數的最後。
但是實際情況中卻很少這樣,C語言提供了各種程序控制語句,以控制程序的執行次序。
流程控制語句有哪些呢?
if語句。
for語句。
while語句。
do...while語句。


1,for語句

for語句是一種C編程結構,它將一個由一條或多條語句組成的代碼塊執行特定的次數。它有時候也被稱為for
循環,因為程序通常循環執行這種語句多次。
for語句的結構:
for(initial;condition;increment)
{
statement;


}
其中initial、condition、increment都是表達式,而statement為單條語句或復合語句。
程序執行到for語句時,將發生以下事件:
a,執行表達式initial。initial通常是一條賦值語句,將一個變量設置為特定的值。
b,判斷condition。condition通常是一個關系表達式。
如果condition為假(即等於0),for語句結束,並接著執行statement語句後面的
第一條語句。
如果condition為真(即不等於0),則執行statement語句。
c,執行表達式increment,然後返回到第2步。

簡單的for循環
#include
/*
for循環示例
*/

int i; //在聲明全局變量 i
//打印1到20的數字
void main(void)
{
	for (int i = 1; i <= 20;i++)  // 向上計數
	{
		printf("%d\n",i);
	}

	system("pause");
}

運行後的結果

\


for語句常常被用來“向上計數”,也就是將計算器從一個值增加到另一個值,我們也
可以使用“倒計數”,也就是將計算器變量遞減。


<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICA8c3Ryb25nPrW5vMbK/Twvc3Ryb25nPjxicj4KPC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;">#include void main() { for (int i = 20; i >= 1;i--)//倒計數 { printf("%d\n",i); } system("pause"); }

運行後結果

\


增量為2

#include

void main()
{
	int i = 0;
	/*
		for語句非常靈活,若已經在程序前面初始化了計數器,則可以省略初始化表達式,但不能省略分隔符。
	
	*/
	for (; i <= 20; i += 2)//向上計數,但增量為2
	{
		printf("%d\n", i);
	}
	system("pause");
}

運行後結果

\



另一種寫法

#include

void main()
{
	int i = 0;
	for (; i <= 20;)//向上計數,但增量為2
	{

		//i++   寫在這裡也是可以的
		printf("%d\n", i++); //i++  放在這裡也是也是可以的
	}
	system("pause");
}

運行結果

\


深入理解for

#include

void main()
{
	/*
	用於終止for循環的表達式也可以是任何表達式。只要該表達式為真(非零),for語句便會繼續執行。
	
	*/
	int i = 0;
	int j = 15;
	for (; i <= 20 && j>=0;)//向上計數,但增量為2
	{
		j--;

		//i++   寫在這裡也是可以的
		printf("%d\n", i++); //i++  放在這裡也是也是可以的
	}
	system("pause");
}
 運行後結果
\



initial 可以使任何合法的表達式,通是一個將變量設置為特定的賦值語句。
condition 可以是任何合法的表達式,通常是一個關系表達式。當condition為假(0)時,for
語句將終止,然後接著執行statement後面的第一條語句;否則將執行statement中的語句。


for語句中可以包含另一條for語句,這就是嵌套。

打印任意行和列
#include

void draw_box(int, int);

void main()
{
	//打印出8行25列的X
	draw_box(8, 25);
	system("pause");
}

void draw_box(int row, int column)
{

	int col; //定義中間變量
	for (; row > 0;row--)
	{
		for (col = column; col > 0;col--)
		{
			printf("x");
		}
		printf("\n"); //每行打印完畢後,添加換行符使其換行
	}
	

}
 運行結果

\



2,while語句
while語句也叫while循環,他不斷地執行一個語句塊,直到條件為假為止。
while(condition)
statement

其中condition可以使任何表達式,statement是一條語句或一個復合語句。
程序執行到while語句後,將發生一下事件:
a,計算表達式condition;
b,如果condition為假(0),while語句將結束。
c,如果condition為真(非0),將執行statement中的語句。
d,返回到第1步。


while循環

#include
int count;
/*
打印1到20的數字
*/
void main()
{
	count = 1;//初始化
	while (count<=20)
	{
		printf("%d\n",count);
		count++;
	}
	system("pause");

}

運行結果

\




結論:
for(;condition;) 等價於 while(condition);
由於這種等價性,使用for語句能夠完成的任何工作,都可以用while語句來完成。
使用while語句時,必須先使用單獨的語句來完成所有必要的初始化工作,同時必
須在while循環體內使用一條語句來完成遞增工作。


和for語句一樣,while語句的嵌套。


for和while的結合

#define  _CRT_SECURE_NO_WARNINGS
#include
int array[5]; //聲明一個容量為5的數組
void main(void)
{
	//聲明並初始化2個變量
	int ctr = 0,
		nbr=0;
	printf("This program prompts you to enter 5 numbers \n");
	printf("Each number  should be  from 1 to 10 \n");

	while (ctr < 5)
	{
		nbr = 0;
		while (nbr<1|| nbr>10)
		{
			printf("\n Enter number %d of 5:",ctr+1);
			scanf("%d",&nbr);
		}
		array[ctr] = nbr;//給數組賦值
		ctr++; //增量1
	}
	//輸出數組
	for (ctr = 0; ctr < 5;ctr++)
	{
		printf("Value %d is %d\n",ctr+1,array[ctr]);
	}
	system("pause");
}


運行結果





  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved