for, while,do-while循環語句的各個特點
他們可通過添加if語句互相代替
for循環多用于指定初始值和已知終止條件的循環(有點兒類似于do while ,多出的功能是初始化條件,如果把第一個條件添空,則相當于while循環)
while循環 是在循環開始前判斷是否滿足條件進行循環(通過在循環前添加初始化語句可以達到for循環效果)
do while循環 ,無初始條件,循環體執行過后判斷是否繼續進行循環,也就是說,它無論如何都會執行一次(外嵌if語句達到while循環效果,在while之前加初始化語句可達到for循環語句)
請列舉for,while,do-while三個循環語句都有用的例子
計算從1加到10的3種代碼(sum之前聲明過,初始值賦值為0,i的初始值為1)
for(int i=1;i<=10;i++)
sum=sum+i;
while(i<=10)
{sum=sum+i;i++;}
do{sum=sum+i;i++;}while(i<=10)
擴展資料
存儲級別關鍵字
auto:指定為自動變量,由編譯器自動分配及釋放。通常在棧上分配。與static相反。當變量未指定時默認為auto。(K&R時期引入)
static:指定為靜態變量,分配在靜態變量區,修飾函數時,指定函數作用域為文件內部。(K&R時期引入)
register:指定為寄存器變量,建議編譯器將變量存儲到寄存器中使用,也可以修飾函數形參,建議編譯器通過寄存器而不是堆棧傳遞參數。(K&R時期引入)
extern:指定對應變量為外部變量,即標示變量或者函數的定義在別的文件中,提示編譯器遇到此變量和函數時在其他模塊中尋找其定義。(K&R時期引入)
const:指定變量不可被當前線程改變(但有可能被系統或其他線程改變)。(C89標準新增)
volatile:指定變量的值有可能會被系統或其他線程改變,強制編譯器每次從內存中取得該變量的值,阻止編譯器把該變量優化成寄存器變量。(C89標準新增)
參考資料來源:搜狗百科——C語言
for語句和while語句還有do while語句
1:for循環
for語句的格式為:
for (初始化語句; 條件語句; 控制語句)
{
語句1 ;
語句2 ;
。.
語句n ;
}
for 語句的執行順序是:首先執行“初始化語句”;然后測試“條件語句”;若條件成立,則執行語句1到語句n;然后執行“控制”語句;接著再測試條件語句是否成立,如果成立則重復執行以上過程,直至條件不成立時才結束for循環。如:
for(i=0;i<10;i++)。。;
int i,a[]=new int[10];
for (i=0,i<10;i++) a[i]= 0;
這段代碼把整型數組a中的所有元素都賦成0。
你可以在for循環的頭部說明你的變量,而且最后一個表達式可以省略,不過要確定在語句中對變量的值有所改變,如:
for(int i=0;i<=10;) i+=i;
for循環中,“初始化語句”、“條件語句”和“控制語句”都可以省略,但是其間的分號不能省略。例如:
int i =0 ;
for (; ; ;)
{
if i>10 break ;
i = i +1 ;
}
for循環中省略“條件語句”時,在for語句{}中必須包換轉句語句控制程序在某個條件滿足時跳出for循環,否則將形成死循環
2:while循環
while循環和for循環類似,其格式為:
while (條件語句)
{
語句1 ;
語句2 ;
。.
語句n ;
}
執行while時,先測試“條件語句”,如果條件成立,則執行語句1到語句n,直至條件不成立時調處循環。
int i=0 ;
while (i<10)
{
i++ ;
*n("Hey!.get me out of here!:);
}
3:do 。 while 循環
do 。 while 循環語句的格式為:
do
{
語句1 ;
語句2 ;
。.
語句n ;
}
while (條件語句) ;
do 。while 語句的功能是首先執行語句1到語句n,然后進行條件測試,如果條件成立,則繼續執行語句1到語句n,否這跳出循環。如:
boolean test=false;
do
{
}
while(test);
這種控制并不是很常用,但有時卻非常重要,使用時注意結尾處while語句后的分號。
什么是FOR TO DO語句的變量和循環
這東西沒必要解釋的吧。
。 for i := 5 to 10 do writeln(i); 這個展開就是i:= 5;writeln(i);i:= 6;writeln(i);。
.i:= 10;writeln(i); pascal里的for循環,循環變量一定是每次增1或減1的。to/downto 左邊是初值,右邊是終值,to的話就是+1,downto就是-1 用begin..end包裹,那是表示一個語句塊,因為按規定for語句后只能有一條執行語句,當有多條語句的時候就必須有begin。
end來包裹這些語句。
什么是FOR TO DO語句的變量和循環
這東西沒必要解釋的吧。
。 for i := 5 to 10 do writeln(i); 這個展開就是i:= 5;writeln(i);i:= 6;writeln(i);。
.i:= 10;writeln(i); pascal里的for循環,循環變量一定是每次增1或減1的。to/downto 左邊是初值,右邊是終值,to的話就是+1,downto就是-1 用begin..end包裹,那是表示一個語句塊,因為按規定for語句后只能有一條執行語句,當有多條語句的時候就必須有begin。
end來包裹這些語句。
1, 分別用三種循環語句(while語句,do-while語句,for語句),實現
3個程序都經過測試正確,可拷貝。
while語句
#include <stdio.h>
int main()
{
int i = 200, sum = 0;
while(i <= 1000)
{
if (i % 3 == 0)
sum += i;
i += 5;//被5整除,所以每次+5
}
printf("sum = %d", sum);
}do-while語句:
#include <stdio.h>
int main()
{
int i = 200, sum = 0;
do
{
if (i % 3 == 0)
sum += i;
i += 5;//被5整除,所以每次+5
}while(i <= 1000);
printf("sum = %d", sum);
}for語句:
#include <stdio.h>
int main()
{
int i = 200, sum = 0;
for (i = 200; i <= 1000; i += 5)//被5整除,所以每次+5
{
if (i % 3 == 0)
sum += i;
}
printf("sum = %d", sum);
}