for, while,do-while循環語句的各個特點
他們可通過添加if語句互相代替
for循環多用于指定初始值和已知終止條件的循環(有點兒類似于do while ,多出的功能是初始化條件,如果把第一個條件添空,則相當于while循環)
while循環 是在循環開始前判斷是否滿足條件進行循環(通過在循環前添加初始化語句可以達到for循環效果)
do while循環 ,無初始條件,循環體執行過后判斷是否繼續進行循環,也就是說,它無論如何都會執行一次(外嵌if語句達到while循環效果,在while之前加初始化語句可達到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語句和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語句后的分號。
C語言while、do-while循環詳解
while 語句循環
1while語句中的表達式一般是關系表達式或者是邏輯表達式,只要表達式的值為真(非0)即可繼續循環
2 循環體中如果包括一個以上的語句 則必須用{}括起來,組成符合語句
3 應注意循環條件的選擇 以避免死循環
4 允許while語句的循環體又是while語句,從而形成雙循環。
do-while語句
1 do-while語句和while語句的區別在于 do-while語句是先執行后判斷,因此 do-while至少要執行一次循環體,而while是先判斷后執行,如果條件不滿足,則一次循環體語句也不執行。while語句和 do-while語句一般可以相互改寫。
2 在if語句和while語句中,表達式后面不能加分號,而在 do-while語句的表達式后面必須加分號。
3 do-while語句也可以組成多重循環,而且可以和while語句相互嵌套。在do和while之間的循環體由多個語句組成是,也必須用{}括起來形成一個復合語句。
請列舉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語言
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);
}
用while或do-while語句編寫程序,計算e約等于1+1/1!+1/2!+…+1/n!其
方法1 #include void main() { float e,a; int i,n=0; /*涉及到小數運算要用浮點型變量*/ e=1,a=1; /*a=1在后面有乘積運算*/ for(i=1;1/a>1e-5;i++) /*條件循環語句*/ { a*=i; /*級乘的算法*/ e+=1/a ; /*e的運算方法*/ n++; } printf("%f,n=%d\n",e,n); } 方法2 #include int main( ) { float s = 1,n = 1;int t = 1; while ( 1 / n >= 0.00001 ) { s+=1/n; t++; n=n*t; } printf("%f,n=%d\n",s,t); return 0; } 方法3 #include void main() { int i=1,j=1; float e=1.0,k; do{ j=i*j; k=1.0/j; e=e+k; i++; }while(k>1e-5);/*判斷誤差是否小于給定的誤差限E=0.00001 */ printf("%f,n=%d\n",e,i); }。
轉載請注明出處華閱文章網 » whiledowhile循環語句