C語言中的一個小問題?
在c語言中
和
for (...)
{
for (...)
{
for (...)
{
}
}
}
有什麼區別?
for (...)
for (...)
for (...)
{
}
for 對圓括弧後面那個語句循環;大括弧可以把一堆語句「當作一個語句來用」。
來,跟我念:
一組語句可以組成一個語句塊,方法是在這組語句開始之前加上{,在結束的地方加上}。一個語句塊可以被C編譯器視作一個語句。
例如:
for(. . .)
{
s3 = s1 + s2;
mul = s3 * c;
remainder = sum % c;
}
這就是一個語句塊,以{開始,}結束。在這裡for是一個C語言關鍵字。
語句塊提供了一個將多個語句當作一個語句來處理的方法。很多C語言的關鍵字只能處理一個語句(比如for)。如果你想用這些關鍵字來控制很多的語句,你可以將這些語句放到一個語句塊中,C關鍵字就可以把它當作一個語句來處理了。
沒有區別。
如果不用大括弧,每一個for只能作用一個語句,而每個for作用一個for就剛好符合這一點。知乎這都什麼地。。。
for(auto i : is)
for (auto j : js)
for (auto k : ks)
{
Fuck(i, j, k);
Shit(i, j, k);
}
和
for(auto i : is)
{
for (auto j : js)
{
for (auto k : ks)
{
Fuck(i, j, k);
Shit(i, j, k);
}
}
}
沒有區別
謝邀。1,for()後面加一條語句的形式是簡化版的for,這種情況只能循環一句代碼。2,加了大括弧就可以循環幾條語句。3,一個for循環可以看作是一條語句。所以,如果你只需要寫一句話的循環,那就沒區別。
先說下for語句的原理
for(初始賦值;判斷條件;循環後執行)
{
循環內容;
}
初始賦值:只在第一次進入循環前執行,以後每次循環都不會再執行
判斷條件:判斷條件為真,進入循環,執行循環體,判斷條件為假,退出循環循環後執行:每次執行完循環內容,才會執行,一般用來控制循環變數循環內容:你設計的程序,需要重複執行以達到目的for本身也是一條語句可以這樣寫:for(i=0;i&<10;i++)
語句1;
也可以這樣寫:
for(i=0;i&<10;i++);
還可以這樣寫:
for(i=0;i&<10;i++)
{
語句1;
語句2;
...
}
甚至你還能這樣寫:
for(i=0;i&<10;語句1,i++);
這都是一條語句
這些都是根據你的需求來用的,你只要搞清循環運行的順序你就知道該怎麼用for的嵌套所以:for(變數;條件;執行)
for(變數;條件;執行)
for(變數;條件;執行)
{
語句;
}
和
for(變數;條件;執行)
{
for(變數;條件;執行)
{
for(變數;條件;執行)
{
語句;
}
}
}
在某些情況下是沒有區別的,這都是根據你設計的循環需求而相應的選擇適合的寫法
比如:for(變數;條件;執行)
{
語句1;//控制內層變數
for(變數;條件;執行)
{
語句3;//控制外層變數
for(變數;條件;執行)
{
語句;
}
if(條件) break;//滿足條件後,退出循環
}
語句2;
}
如果你需要一些複雜的控制,明顯第二種更好寫,更簡單,可讀性更高
其實不管什麼情況我都比較推薦第二種寫法,可讀性更高,更便於理解,方便自己也方便他人閱讀理解
其實for的玩法還是很多的,只要你明白你是想用它來達到某些目的,學會靈活使用,怎麼寫都是可以噠
比如:for(;;)
{
語句1;
語句2;
...
if(條件) break;//滿足條件退出循環
}
這就是一個死循環,裡面的 if(條件) break 就是控制循環退出的,這樣用是不是感覺和while又很相似,是的,其實理解了,怎麼用都是你自己的事
再舉個例子:i=8;
for(j=0;i=j;j++);
or
i=0;
for(j=0;i&<=8;j++)
{
i=j;
}
這只是我舉得例子
執行的判斷條件不一定是要和你的循環初始條件有關,學會靈活應用很重要-----------------------------------------------------------------------------------------------------------------------------------
就想到這麼多,看懂了,喜歡的話就贊一下吧。~增加代碼行數,可以多加錢
輪子哥跟我們搶送分題。
你不知道可以省略大括弧嗎
來個簡單的,
for(){
語句1;}和
for( )
語句1;是沒有區別的;
然後多嵌套幾個for循環就是題主的結構了。
如果某個循環中有多個語句,就要用大括弧了。
比如:
for( )
for( ){ 語句1; for() 語句2;}此處大括弧是不能省略的。
大括弧是否能省略取決與循環內語句條數。
其他類推。
(誰能告訴我怎樣才能把縮進顯示出來-_-||)1:你竟然寫了這麼多嵌套(摔桌)2:耶,我把一個很複雜的邏輯拆出來了
第一個更方便修改
第二個更好看
以上沒有什麼區別吧!你前兩個for後面只有一個語句。
#define forever for(;;)forever forever forever ;跟這個一樣,沒區別很多答主說的是假如裡面有其他語句的時候,語句和語句塊我覺得既然題主只是問有沒有區別直接說沒區別就得了,(逃
不加括弧的話,for只針對緊跟它的第一條完整語句循環;加括弧的話,for對跟在它後面那個大括弧里的所有語句循環。
沒有區別,你這個縮進真是看些難受
好像,只是,套了,好幾個,括弧
帶大括弧的語句塊只包含一行語句,可以不用寫大括弧! 嵌套多不推薦這麼寫
for
(while)if中,如果你只寫一個條件就可以不用大括弧。。頭痛while都拼錯了。推薦閱讀:
※C 指針傳遞變數為什麼無法修改變數值?
※不學C語言,直接學C++會有問題嗎?
※怎麼理解 C 語言是面向過程的語言,C++ 是面向對象的語言。?
※gcc環境下不能使用gets怎麼辦?
※怎麼理解C語言的複雜聲明?