請問語句do{.}while(!i)是什么意思?為什么會構成死循環?最好具體解
首先說說do……while的原理假設語句內容為do A while(B)則首先執行語句A,然后對語句B進行判定若B為真,則再次執行A,判定B,如此循環若B為假,則循環結束回到你的問題,根據問題內容,判定語句B為!i,也就是i的否定那么當i為真,或者在c語言中為非0的數值的時候,則循環結束那么在A語句,也就是do后面那一段中,一定要有能改變i的語句存在,否則i就會是固定的一個值若該值為0,或者為false,那么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語句后的分號。
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語句后的分號。
用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); }。