當前位置:首頁 » 編程軟體 » 死循環編譯能通過嗎

死循環編譯能通過嗎

發布時間: 2022-07-30 07:55:16

『壹』 死循環怎麼解

死循環

(無法靠自身的控制終止的循環)
編輯
編程中,一個無法靠自身的控制終止的程序稱為「死循環」。
例如在c語言程序中,語句「while(1)printf("*");」就是一個死循環,運行它將無休止地列印*號。
不存在一種演算法,對任何一個程序及相應的輸入數據,都可以判斷是否會出現死循環。因此,任何編譯系統都不做死循環檢查。
在設計程序時,若遇到死循環,我們可以通過按下Ctrl+Pause/Break的方法,結束死循環。
然而,在編程中死循環並不是一個需要避免的問題,相反,在實際應用中,經常需要用到死循環。例如,我們使用的Windows操作系統下的窗口程序中的窗口都是通過一個叫消息循環的死循環實現的。在單片機、嵌入式編程中也經常要用到死循環。在各類編程語言中,死循環都有多種實現的方法,以C語言為例,可分別使用while.for,goto實現。

『貳』 c語言中循環語句如果沒有終止條件能否編譯

可以啊,編譯器只能檢查語法錯誤和一些簡單的語義錯誤,死循環不會報錯

『叄』 為什麼這個for循環是死循環 (pascal)

嘿嘿,howlshadow可能只用Delphi,很少用turbo pascal或free pascal

end. 表示 program xxx begin的結束, 在Delphi中.dpr可以看得到!

這個程序是一個死循環,turbo pascal也可以編譯通過.剛才用free pascal試了下,編譯報錯!

這是因為pascal在編譯的程序在判斷for循環語句是否結束時, 首先對循環變數加1, 再判斷是否「等於」結束值+1,是則退出
而當循環體中修改了循環變數,造成這時的值永遠不等於結束值的話,就會出現死循環!

你可以加兩句看看效果:

var
a,i:longint;
begin
for i:=1 to 100 do
begin
a:=a+i*i;
i:=i+2;
writeln(i);
if i>120 then break;
end;
end.

或改成下面的,也不會出現死循環!

var
a,i:longint;
begin
for i:=1 to 100 do
begin
a:=a+i*i;
i:=i+1;
end;
end.

『肆』 什麼是死循環

在編程中,一個靠自身控制無法終止的程序稱為「死循環」。

例如在C語言程序中,語句「while(1)printf("*");」就是一個死循環,運行它將無休止地列印*號。不存在一種演算法,對任何一個程序及相應的輸入數據,都可以判斷是否會出現死循環。因此,任何編譯系統都不做死循環檢查。

在設計程序時,若遇到死循環,可以通過按下Ctrl+Pause/Break的方法,結束死循環。然而,在編程中死循環並不是一個需要避免的問題,相反,在實際應用中,經常需要用到死循環。


(4)死循環編譯能通過嗎擴展閱讀

死循環的產生原因:

死循環也可能因為多個模塊之間的交互而產生。考慮一台伺服器若收到無法理解的需求時,會回應錯誤信息,此架構中不會有死循環。

但若有二台上述的伺服器(A和B),互相交換數據,A收到由B所提交無法理解的需求,會回應錯誤信息給B,但若B也無法理解A提交的需求(其實是A的錯誤信息),會再以自己的格式回應錯誤信息給,A收到後無法理解,會再回應錯誤信息給B。像郵件循環就是這類的例子。

『伍』 java中死循環後面的語句是否會執行到的問題

首先,你的while裡面,如果什麼都不寫的話,while是恆成立的,所以永遠不會執行i++
但如果你裡面有if語句,在某些情況下,它可能會執行到break上面來,跳出while,所以i++寫在這里,編譯器會認為它沒有問題。
if裡面是false,while裡面是true,你可以想一下,if(false)永遠不可能成立,所以這個分支是永遠不可能執行到的,不能執行if那麼i++也是執行不到。在這種情況下,編譯器不會報錯。所以會有你說的Dead code.

『陸』 在keil中用C語言編寫程序時遇到死循環是不是不能生成hex文件

沒有關系的,可以正常編譯的


『柒』 pascal里死循環怎麼辦編譯器能判斷出來嗎

不論什麼語言
屬於邏輯錯誤的目前市面上的常用編譯器都不能進行判斷!
除非特定的編譯器..不過那也不太現實
..死循環只有在運行期間才能表現出來
編譯器如何判斷?

嘿..好像話不能說死了..像WIN系統就能檢測防止死鎖(死鎖與死循環在一定程度上是屬於同種類型)

熱點內容
c語言程序設計豆瓣 發布:2025-02-08 08:08:06 瀏覽:525
學校伺服器如何進入密碼界面 發布:2025-02-08 08:05:45 瀏覽:820
UE4源碼編譯要多久 發布:2025-02-08 07:52:50 瀏覽:230
java架構師做什麼 發布:2025-02-08 07:38:32 瀏覽:774
java解碼器 發布:2025-02-08 07:25:35 瀏覽:297
p4忘記密碼了如何刷機 發布:2025-02-08 07:25:25 瀏覽:307
java分隔 發布:2025-02-08 07:15:02 瀏覽:813
源碼乘法豎式 發布:2025-02-08 07:05:48 瀏覽:137
天天酷跑腳本腳本精靈 發布:2025-02-08 07:05:15 瀏覽:346
ios資料庫遷移 發布:2025-02-08 07:00:16 瀏覽:852