1樓:倒黴熊
for中三個語句都是可以省略了
例如for(; ;)
這樣的寫法也是正確的。
你的上面是雙重迴圈,如果第二個賦初值提出來放在 第一個for迴圈上面 和 放在第二個for中賦初值是不相同的。
關鍵看你想要的是什麼?
2樓:匿名使用者
1) for迴圈中的「表
達式1(迴圈變數賦初值)」、「表示式2(迴圈條件)」和「表示式3(迴圈變數增量)」都是選擇項, 即可以預設,但「;」不能預設。
2) 省略了「表示式1(迴圈變數賦初值)」, 表示不對迴圈控制變數賦初值。
3) 省略了「表示式2(迴圈條件)」, 則不做其它處理時便成為死迴圈。
例如:for(i=1;;i++)sum=sum+i;
相當於:
i=1;
while(1)
4) 省略了「表示式3(迴圈變數增量)」, 則不對迴圈控制變數進行操作,這時可在語句體中加入修改迴圈控制變數的語句。
例如:for(i=1;i<=100;)
5) 省略了「表示式1(迴圈變數賦初值)」和「表示式3(迴圈變數增量)」。
例如:for(;i<=100;)
相當於:
while(i<=100)
6) 3個表示式都可以省略。
例如:for(;;)語句
相當於:
while(1)語句
7) 表示式1可以是設定迴圈變數的初值的賦值表示式,也可以是其他表示式。
例如:for(sum=0;i<=100;i++)sum=sum+i;
8) 表示式1和表示式3可以是一個簡單表示式也可以是逗號表示式。
for(sum=0,i=1;i<=100;i++)sum=sum+i;
或:for(i=0,j=100;i<=100;i++,j--)k=i+j;
9) 表示式2一般是關係表示式或邏輯表示式,但也可是數值表示式或字元表示式,只要其值非零,就執行迴圈體。
例如:for(i=0;(c=getchar())!=』\n』;i+=c);
又如:for(;(c=getchar())!=』\n』;)
printf(「%c」,c);
3樓:
for中的三個表示式分別表示 初始條件 終止條件 和 變化條件
三個都不一定需要,但是在你的程式中可以有。
比如for(;;)就是可以沒有的情況,和while(1)等價
4樓:擋路
可能是編譯器問題,一般來說不賦初值是可以的,如果for裡面三個都是空的話,那就是無限迴圈
c語言中for語句是怎麼用的
5樓:肥仙女
c語言中for語句用法:
for是c語言中的一個關鍵字,主要用來控制迴圈語句的執行。
舉例:int i;
for(i=0; i<3; i++)
// i=0是初始化部分;i<3是迴圈判斷條件部分(當滿足此條件時才進入執行for迴圈中的語句);i++是執行完迴圈體語句後的操作
// 上面的for語句就是控制輸出3次helloworld。
擴充套件資料:
for迴圈是程式語言中一種迴圈語句,而迴圈語句由迴圈體及迴圈的判定條件兩部分組成,其表示式為:for(單次表示式;條件表示式;末尾迴圈體)。
1.語句最簡形式為:
for( ; ; )
2.一般形式為:
for(單次表示式;條件表示式;末尾迴圈體)
其中,表示式皆可以省略,但分號不可省略,因為「;」可以代表一個空語句,省略了之後語句減少,即為語句格式發生變化,則編譯器不能識別而無法進行編譯。 [1]
for迴圈小括號裡第一個「;」號前為一個為不參與迴圈的單次表示式,其可作為某一變數的初始化賦值語句, 用來給迴圈控制變數賦初值; 也可用來計算其它與for迴圈無關但先於迴圈部分處理的一個表示式。
「;」號之間的條件表示式是一個關係表示式,其為迴圈的正式開端,當條件表示式成立時執行中間迴圈體。
執行的中間迴圈體可以為一個語句,也可以為多個語句,當中間迴圈體只有一個語句時,其大括號{}可以省略,執行完中間迴圈體後接著執行末尾迴圈體。
執行末尾迴圈體後將再次進行條件判斷,若條件還成立,則繼續重複上述迴圈,當條件不成立時則跳出當下for迴圈。
6樓:浩雄王
1、for是c語言中的一個關鍵字,主要用來控制迴圈語句的執行。
2、下面舉例說明for語句的使用方法:
int i;
for(i=0; i<3; i++)
// i=0是初始化部分;i<3是迴圈判斷條件部分(當滿足此條件時才進入執行for迴圈中的語句);i++是執行完迴圈體語句後的操作
// 上面的for語句就是控制輸出3次helloworld。
for迴圈是程式語言中一種開界的迴圈語句,而迴圈語句由迴圈體及迴圈的終止條件兩部分組成,for迴圈其在各種程式語言中的實現與表達有所出入,但基本為以c語言和pascal語言代表的兩種形式。
7樓:life蝸牛
for(初始變數;迴圈條件;修改變數)
8樓:匿名使用者
1:for迴圈
for語句的格式為:
for (初始化語句; 條件語句; 控制語句)
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 (; ; ;)
for迴圈中省略「條件語句」時,在for語句{}中必須包換轉句語句控制程式在某個條件滿足時跳出for迴圈,否則將形成死迴圈
2:while迴圈
while迴圈和for迴圈類似,其格式為:
while (條件語句)
執行while時,先測試「條件語句」,如果條件成立,則執行語句1到語句n,直至條件不成立時調處迴圈。
int i=0 ;
while (i<10)
3:do ... while 迴圈
do ... while 迴圈語句的格式為:
dowhile (條件語句) ;
do ...while 語句的功能是首先執行語句1到語句n,然後進行條件測試,如果條件成立,則繼續執行語句1到語句n,否這跳出迴圈。如:
boolean test=false;
dowhile(test);
這種控制並不是很常用,但有時卻非常重要,使用時注意結尾處while語句後的分號。
9樓:匿名使用者
for 語句是一種應用廣泛的迴圈語句,一般格式為for(表示式1;表示式2;表示式3)迴圈語句;
表示式1作用為對一般變數初始化,完成初始化後計算表示式2的值,如是非零值則執行迴圈語句,即表示式2為條件語句,表示式3為執行完迴圈語句後才求解的式子,多為改變變數的值.
例如:迴圈執行某段相同的**
for(int i = 0; i < 5; i++)比如這段**是把hello迴圈輸出5次。
int i = 0是初始條件
i < 5是條件判斷,如果滿足此條件就執行**i++是條件的變化步長
10樓:匿名使用者
做迴圈用的
例如你要迴圈某個事件 5次
int i;
for(i=0;i<5;i++);
11樓:
c語言程式設計知識第十二節-c語言語句之迴圈語句-for語句
12樓:謝搶來
這樣的問題也問,那書是用來做什麼的?暈
c語言for語句加{}和不加{}有什麼區別?
13樓:匿名使用者
你好,很高興為你答疑。
為了程式的易讀,一般是提倡加括號的,那樣for函式執行的主體清晰明瞭。
不加括號的時候,預設該for函式執行的是緊跟其後的1函式或語句。
比如:for(;;)
}這裡面外層的for不佳括號也可以的。但是如下:
for(;;)
printf("");
}這樣的話外層for不加括號主體是內層 for ,主體沒有printf函式了。是以提倡加括號。
問題解決還望採納。也歡迎**。
14樓:匿名使用者
{}其內的所有語句是
迴圈體內的語句;無{}則預設下一個";"前的語句是迴圈體內的語句。
例如:for(int i=0;i<5;i++)//每次迴圈,m和n的值都重新計算,即5次計算。
for(int i=0;i<5;i++)m+=5+i;n+=m;//每次迴圈,m的值都重新計算,即5次計算,n則是for迴圈結束後僅計算一次。
for(int i=0;i<5;i++);m+=5+i;n+=m;//每次迴圈啥都不做,m和n則是for迴圈結束後僅計算一次。
15樓:匿名使用者
如果for迴圈裡面,只有一條語句,那麼,加不加 是沒有任何區別的。 如果for 迴圈裡面有很多條語句,那麼加了{},for就執行兩個{}裡面的語句,不加,就執行下一個分號之前的語句,因為一個分號是保不住多個語句的。
c語言中for(;;)是什麼意思?
16樓:a羅網天下
在c語言中,for語句使用最為靈活,它的一般形式為:
for(表示式1; 表示式2; 表示式3) 語句它的執行過程如下:
先求解表示式1。
求解表示式2,若其值為真(非0),則執行for語句中指定的內嵌語句,然後執行下面第3)步;若其值為假(0),則結束迴圈,轉到第5)步。
求解表示式3。
轉回上面第2)步繼續執行。
迴圈結束,執行for語句下面的一個語句。
程式執行過程如下圖所示:
17樓:
當然會死迴圈了。
for後的圓括號中,第一個分號前的內容是執行第一次迴圈前執行的,第二個分號前的內容是每次執行前都要判斷的(如果該處表示式的值為真,那麼執行迴圈體,如果為假,那麼就跳出迴圈體),第二個分號後的內容是每執行完一次迴圈體後執行的
你這裡中間沒有限制條件(第2個分號前)(有限制條件也要該條件必然會變成真,迴圈才會停止),所以不會停。另一種停止的方法在迴圈體中使用break跳出迴圈體。
18樓:匿名使用者
for(;;)
相當於while(1)
即不設初值,不判斷條件,迴圈變數不增值,無終止的迴圈。
那個程式會死迴圈
c語言for迴圈巢狀if語句,c語言for迴圈巢狀if語句
include int main int argc,char argv else endforloop printf 已經退出外層迴圈 return 0 比如 for i 0 i 10 i if i 5 break 外部迴圈的條件是i 10,內部判斷i是否等於5,如果等於執行break,結束迴圈,否...
C語言問題if語句巢狀C語言中三個if語句的巢狀怎理解
要點是1 if與else的成對關係依照就近原則2 if與else的成對關係遇到花括號時,就近原則找相成對花括號3 區域性 塊一定要加括號 if a 1 if b 1 printf yes n a 1且b 1時執行else printf no n a 1且b 1時執行 用括號括起來更容易理解 if a...
C語言中,什麼叫複合語句,C語言複合語句的使用
把多個語句用括bai 號 括起來du組成的一個語句zhi 稱複合語句。在程式中dao應把複合語句看成是單條專語句屬,而不是多條語句,例如 是一條複合語句。就是循bai環體中用多個語 du句來實現,例如zhi 求1,2,3,4,5的和 main 就是一個語句後包含另一個語句 從上到下依次執行。好好看教...