c語言。剛開始學。問小問題。如果我在for迴圈語句後面加了個分號。計算機怎麼執行

時間 2021-10-17 04:40:55

1樓:煙火夜空

如果 for 裡面 什麼也沒有,for 外面是個分號,那就相當於,條件為空(非0),迴圈內容為空,死迴圈。

2樓:聽不清啊

如果在for(;;)迴圈語句後面加了個分號,變成:

for(;;);

導致的結果是:原來的迴圈判斷照常進行,但是如果條件成立的話,它執行的是一個空語句(;),如果這時的迴圈還能正常結束的話,比如說,

int i,s;

s=0;

for(i=1;i<=100;i++);

printf("=%d",s);

那麼當迴圈結束後,本來期望的+1+2+3。。。+100=5050並沒有出現,

只是出現了+101=101。

這是因為原來的for語句僅在一行上就完成了。下面加法所在的一行與迴圈語句沒有關係了,變成了無條件執行的語句(僅執行一次)。

3樓:小政

for(;;)

;    //語句為空,無限執行此語句死迴圈

4樓:萢萢

計算機會執行空迴圈。

5樓:

計算機就會一直停在for迴圈這裡,不會再往下執行了

6樓:匿名使用者

不斷迴圈,直到計算機的運算資源耗盡為止

7樓:北漂碼農

試試不就知道了,報錯唄,編譯不出來的

8樓:歲麻呱

執行你for括號裡的東西,沒實際意義,反而浪費cpu資源

9樓:

如果沒有限制條件,會一直在這裡迴圈。啥都沒有

c語言剛學,問一下小問題。for迴圈後面如果我加了個分號(for裡面都是有內容的)怎麼執行?老師說

10樓:

for迴圈正常判斷,只是滿足條件後不做任何操作,比如 for(i=1;i<10;i++); 最後i會變成10

11樓:匿名使用者

for(初始化表示式1;迴圈條件表示式2;變數增量表示式4)

for 迴圈就是按照1,2,3,4這四個步驟來的

12樓:哦米噶滴

c語言以分號分隔語句,如果沒有化括號,那麼for迴圈只執行下一段語句。

c語言中 for語句後面的括號裡有兩個分號是什麼意思啊?

13樓:lee羅亞輝

for語句後加分號就是表示執行for中的語句,不執行其他,也就是不帶迴圈體語句。

for後面跟的是迴圈體。如果不需要有迴圈體,也就是for括號裡面的三句就可以完成所有功能那麼就加個分號,表示迴圈體為空。比如 :

求字串s的長度for(len=0;s[len]; len++);這個, 單獨for裡面的三句就完成了所有功能, 不需要迴圈體, 加分號。

擴充套件資料

for迴圈是程式語言中一種迴圈語句,而迴圈語句由迴圈體及迴圈的判定條件兩部分組成,其表示式為:for(單次表示式;條件表示式;末尾迴圈體)。

for( ; ; )裡面是3個語句,兩個分號。第一個語句是開始前執行,第二個語句是判斷真假,如果真,就執行後面(大括號內)的**。第三個語句是每次執行完畢後執行的東西,通常第三個語句使用"i++"表示i=i+1的意思,用來遞增自變數i。

14樓:匿名使用者

表示這個迴圈沒有初始化,沒有條件判斷,沒有標誌變數的變化

它是一個死迴圈

這樣的迴圈其迴圈體內必須有跳出迴圈的語句,否則就沒法正常退出了

15樓:匿名使用者

你好!for(int i=0;i<100;i++) 分號主要是作分隔的效果。 意思就是說,第一個分號前面的是設定迴圈的起始大小;第一個分號與第二個分號間的是設定迴圈的最大次數;第二個分號後面的表示是遞增迴圈還是遞減迴圈。

c語言for括號後加分號什麼意思

16樓:天雲一號

for語句後加分號就是表示執行for中的語句,不執行其他,也就是不帶迴圈內體語句

int i, j=0;

for(i=0; i<5; i++)  // 帶迴圈體的for迴圈括起來的就是循

容環體語句

j++;

}for(i=10; i>0; i--);  // 不帶迴圈體的for迴圈

// 執行過程如下如下(也就是for後帶分號的意思)// 當i=10時,i>0成立,則i=i-1=9;之後當i=9時,i>0成立,則i=i-1=8,一直執行下去,當i<=0時跳出for迴圈

17樓:匿名使用者

正常的應該是這個

抄樣子的

for(i=0;i<10;i++)

叫迴圈體!

如果是這樣:for(i=0;i<10;i++) ;表示什麼都不做。跳出後,i的值為10。

如果沒有分號就不完整!

18樓:匿名使用者

for(i=0;i<10;i++);是完整的for迴圈,包括迴圈體,迴圈體是空語句,do nothing

for(i=0;i<10;i++)是不完整的for迴圈,沒有迴圈體

19樓:匿名使用者

for(i=0;i<10;i++);表示沒有迴圈體,空轉

for(i=0;i<10;i++) 後面接的是迴圈體,如果i<10那麼就執行此句後面的迴圈體

20樓:

for(i=0;i<10;i++);是完整的for迴圈,迴圈體是空語句,do nothing

for(i=0;i<10;i++)是不完整的for迴圈,沒有迴圈體

21樓:我欲弒神

表示這裡直接迴圈!起到延時的作用!

22樓:江小右

; 就是一個語句,不過是空語句而已

c語言中for迴圈語句 for(i=1;i<10;i++)這個一共執行幾次 我總是無法完全理解 求

23樓:匿名使用者

首先要知道for語句

的執行原理,這樣你就知道答案了:

現在以 for(i=1;i<10;i++)為例說明如下:

1.:執行到for語句時,讓i=1,但這隻執行一次。也就是說for語句中第一個分號前的語句只執行一次,就是相當於初始化

2.:判斷第二個分號前的**是否為真

如果為假則退出for語句,就不執行for語句的後面{}中的語句,當然也就不執行第二個分號後的**了

如果為真,則先執行for語句的後面{}中的語句,如果期間沒有跳出語句的**則執行第二個分號後的**,再跳回到2步進行判斷!

所以你的這個for迴圈如下執行

先 i=1

1次,此時i=1,滿足i<10 執行for語句內**,執行i++(i=2)

2次,此時i=2,滿足i<10 執行for語句內**,執行i++(i=3)

3次,此時i=3,滿足i<10 執行for語句內**,執行i++(i=4)

4次,此時i=4,滿足i<10 執行for語句內**,執行i++(i=5)

5次,此時i=5,滿足i<10 執行for語句內**,執行i++(i=6)

6次,此時i=6,滿足i<10 執行for語句內**,執行i++(i=7)

7次,此時i=7,滿足i<10 執行for語句內**,執行i++(i=8)

8次,此時i=8,滿足i<10 執行for語句內**,執行i++(i=9)

9次,此時i=9,滿足i<10 執行for語句內**,執行i++(i=10)

此時i=10,不滿足i<10 退出for語句,未執行i++(i=10)

24樓:無奈去遊戲

9次 i=1 小於10 進入迴圈 執行宣告 後i++i=2 一次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=3 2次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=4 3次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=5 4次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=6 5次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=7 6次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=8 7次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=9 8次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=10 9次完成,

大於10跳出迴圈

25樓:爭分奪秒

10次 9次判斷成功(for迴圈體中執行9次),1次判斷沒成功(for迴圈體中沒執行) 那麼 在計算機中執行了9+1判斷語句

26樓:匿名使用者

n+1次 0~n 你自己算算~

27樓:謎幻界祖

1 2 3 4 5 6 7 8 9 九次,加到10判斷退出,多看下書。

C語言小問題,C語言一個小問題

區別 一個是指向結構體變數的指標,一個是指向整形變數的指標。詳細說明如下 struct student p指向結構體變數的指標 struct 結構體名 結構體指標變數名 執行結果 int p變成了指向整形變數的指標 編譯執行 錯誤 不同的變數型別,p並不屬於整形變數類指標。 你.是不是諶衛軍老師班上...

C語言小問題,C語言一個小問題

儘量不要使用這樣的 因為不同編譯器可能會得到不同的結果。上面是逗號運算子,從右向左進行 結果 n 先使用,即輸出1,再減1 n 這時 n 0,加1,使用,即輸出1n 先使用,即輸出1,再加1 printtf 語句結束後,n 2 c語言的輸出運算是從右向左運算的,但是輸出形式是從左往右!所以先計算n ...

C語言小問題,C語言一個小問題

這個問題的關鍵在於 if k n printf n 這句話。因為只要執行了if n j 後面的複合語句。k n一定成立。k 到k n時,不滿足k 其實去掉if k n 光保留printf n 同樣能得出上面的結果。既然你不想要最後一句的 n。那不妨這樣一改就可得到你想要的 把if k n print...