c語言為什麼for是死迴圈求大神解釋

2021-05-27 22:31:14 字數 3247 閱讀 1637

1樓:碧海風雲

c語言中來for迴圈包含三個部分:初自始化、條件、遞增for (initialization; condition; afterthought)

初始化是宣告(或者賦值)任何需要的變數的動作。如果你要使用多個變數,則變數的種類要一致。條件的部分則是檢查是否離開這個迴圈,也就是讓程式碼往下執行。

如果條件判斷為假,則離開迴圈。遞增在每跑一次迴圈都會重複執行一次。

for(;;),這個語句中缺少迴圈終止的條件,自然就是死迴圈了

c語言 求大神解釋 for(; ;)為什麼是無限迴圈的?

2樓:劉子超1號

該函式等同於while(1),由於執行for迴圈for(初始條件;判斷條件;結束時執行)的判斷條件沒寫,意味著判斷結果始終為真,沒有跳出迴圈的契機,就是無限迴圈。

3樓:zz迎風

for(a;b;c);b的位置是判斷迴圈進行的條件,若b省略,則迴圈一直進行即死迴圈

4樓:玉蘭花瓣巨蟹座

c語言學了,快全部還給老師了

5樓:匿名使用者

悲劇,因某次面試,用的 for(; ;)迴圈,直接被面試官pass...

c語言 為什麼for(;;)是死迴圈?

6樓:金色潛鳥

for(;;) ;

按語法, for 迴圈 (初態;終態;步長) 這三部分,現在 是 (空語句

回;空語句;空語句)。

是合法的答語句。由於沒有給 終態 (即允許繼續迴圈和終止迴圈的條件), 迴圈語句於是可以 永遠繼續下去。俗稱 無限迴圈 或 死迴圈。

但通常 迴圈體內 會有 語句控制 決定 是否中止。例如for(;;) ;

for(;;) ;

當然,必要時,也可以 按組合鍵 ctrl+c, ctrl+z 之類的 中斷 程式執行。

c語言中程式如:for( ; ;);為什麼是死迴圈?

7樓:匿名使用者

for( ; ;);是一bai

個典型的簡介的死迴圈。

解釋如du下:

所謂迴圈zhi就是dao讓計算機重複執行一段內**;

迴圈的核心有兩個容部分:迴圈控制、迴圈體;

迴圈控制部分的迴圈結束條件如果永遠成立,將會導致一直迴圈,俗稱」死迴圈「;

上面的程式:最後的分號,表示迴圈體為空,是空迴圈;括號中的兩個分號之間是放迴圈結束條件的,這裡也是空,等價於迴圈條件永遠成立。

for( ; ;);的迴圈條件永遠成立,所以導致死迴圈。

8樓:莊慧月荊聰

死迴圈就來是不停的執行一

自段**,而沒有退出的條件

~~~~~比如你想要計算從1開始計算以後每個數的和,如果你設定成for(i=1;i<=100;i++){}則程式會在執行100次以後退出for迴圈,而如果設定成for(i=1;;i++){}就可以說是進入了一個死迴圈,當然這麼寫是不合法的~~~~

9樓:匿名使用者

for( a; b; c)其中b這部分是for()迴圈的結束條件 ,你那個for(; ;)沒有結束條件,當然是死迴圈...

10樓:匿名使用者

;;中間是結束條件,什麼都不寫就是一直迴圈,當然會死。

如果確實要這麼使用,在for迴圈中使用break(結束迴圈)或者return(結束當前函式),也可以讓他不死.

11樓:匿名使用者

沒有迴圈結束條件 預設為true 即一直執行

12樓:匿名使用者

for(int i=0;i<20;i++)=>確定i=0,執行迴圈語句,然後i=i+1,判斷i是否小於20,如果內為真,則執行迴圈語句,i=i+1,~~~~~~~知容道i等於20時,跳出迴圈

=>for(語句1;語句2;語句3)

語句1:確定迴圈變數

語句2:當語句2為假時,跳出迴圈

語句3:當一次迴圈將要結束時,最後執行的語句for(;;)語句2為空,則預設為恆真,無限迴圈。

13樓:匿名使用者

您好bai,for(;;);這個迴圈相當於while(1);這個語句就是du無限迴圈;zhi

在for語句當中dao,第一個是初始化資料內,第二個用於條件容判斷,第三個用於迴圈操作。

當第二預設的時候,系統會直接判定為1,相當於不初始化資料,不進行迴圈操作,條件判斷始終為真,始終進行空操作,不斷迴圈,直至宕機

14樓:傳說中的鷹王

for( ; ;); 沒有結束條件,會一直迴圈下去

15樓:

不死才怪,你有沒有c常識。

c語言初學者:為什麼這個for迴圈會是死迴圈?

16樓:匿名使用者

for(m=1;m這一句錯誤,應該是

for(m=1;m

17樓:雪之伊呂裡

你的%d是純數字 數字的多少算是完?數字是無窮大的,你的m=1,m<=n一直成立,不就是死迴圈了。小於一個無窮的數當然死循了。

個人見解,不喜勿噴,喜歡望採納,碼字不易。

18樓:老猴子不會胖

並沒有死迴圈啊 哥 可能你n取值太大

c語言:這個為什麼會陷入死迴圈,求大神解釋,修改

19樓:匿名使用者

你這死迴圈在這裡

while(p!

抄=null)

q=p->next;

q->next=p;

等價於p->next->next=p

這導致p指標始終在兩個結構體間迴圈,p!=null你這**有點酒駕的感覺,到處亂撞o(∩_∩)o~~

20樓:匿名使用者

你能不能作個註釋啊,能力有限看著暈。

head=(struct node *)malloc(sizeof(struct node));

head->next=null; //建立一個頭結點。

p=(struct node *)malloc(sizeof(struct node));

p=head;

這幾行是什麼意思,內p本身分配了一塊記憶體,容又給他賦新值。

hashmap多執行緒為什麼造成死迴圈

一直以來只是知道hashmap是執行緒不安全的,但是到底hashmap為什麼執行緒不安全,多執行緒併發的時候在什麼情況下可能出現問題?hashmap底層是一個entry陣列,當發生hash衝突的時候,hashmap是採用連結串列的方式來解決的,在對應的陣列位置存放連結串列的頭 併發的hashmap為...

c語言中while迴圈語句為什麼while(n!0)的意思是隻要n不等於0?,不應該是n等於0嗎

while 裡面的條件為真才進入迴圈。當n不等於0才進入迴圈,否則就執行while迴圈後面的語句。c語言裡面while函式while n n預設為什麼意思,n不為零嗎?while n 等價於 while n 0 表示n不等於0時執行迴圈體。首先,n在這裡被當作了一個條件 其次,當n為真時,進入whi...

簡單c語言的dowhile 迴圈,但為什麼只能迴圈一次,求解釋,謝謝

你這個do,while沒有一點作用,只要sign不等於 y 就不會做do裡面的工作,首先要明確你的sign是幹什麼的,sign getchar 後面再加個getchar 應該就可以了,第一次輸入y然後回車,getchar 只接收了一個 y 剩下的換行符在第二次迴圈的時候就賦給sign了 while ...