goto語句是有害的嗎,C 裡面使用goto會對效能有影響嗎

時間 2022-04-19 11:37:41

1樓:匿名使用者

可以說是有害的。

因為在程式除錯時不容易發現錯誤在那裡。

可以說是不贊成多用goto語句。但也不反對用的。既然有這個語句就一定有他的作用的。

2樓:匿名使用者

唉..我們老師也給我們講..goto語句有害.1!!~..唉,.~~總是搞不懂.其實真正了解c語言後.goto也沒有害!

3樓:光明哲學派

goto語句打破了侷限性,也就是goto可以在這個函式裡面跑來跑去,打破了計算機的"思維方式"。並不是說goto不可以使用,而是goto少用。goto和電子遊戲一樣,用的好沒問題,用的不好就是毒藥,影響乙個人的程式設計思維。

goto最大好處就在它可以跳出迴圈,因此goto在迴圈裡面可以使用。用的多不如用的好,少用或者不用,goto存在不等於他就是有害,只能說它具有兩面性。

4樓:匿名使用者

原因你已經說了

1.**冗長,不易找出錯誤

有幾w行的時候就明顯了

2.無條件跳轉,超出正常邏輯思維範圍

以前學習的時候老師都禁止我們使用goto

5樓:

首先goto還是有作用的 比如在多層巢狀迴圈中可以直接跳出迴圈而不必一步步break 但是大量goto會造成**難以理解並且會導致編譯器無法判斷出程式的錯誤而對程式設計造成很大的阻礙,那難道說小心使用就好了嗎

其實使用goto還面臨的乙個重要的問題是會打破程式的區域性性原理,這種情況產生的時候程式也許沒有錯誤 也能得到預期的結果,但是很有可能導致程式變慢很多你能怎麼辦 重新設計一種告訴快取嗎

c#裡面使用goto會對效能有影響嗎

6樓:起個暱稱怎麼塔瑪德這麼難

不會。它是乙個正常的可用的合法的語句,使用起來自然沒有任何負面作用。人們提倡少用goto的原因不是因為這個指令執行起來低效或者有害,而是因為goto用多了以後源**會變得令人難以理解。

如今程式的設計和維護早就不是乙個人能完成的了,這就意味著你寫的**必須容易被別人理解。而goto用多了,跳來跳去的別人會很難弄明白你的某些**是幹什麼的。運用for/do while這類迴圈語句則一目了然,便於別人閱讀。

7樓:匿名使用者

goto語句這個東西不是太常用..

因為其實任何需求下的goto語句都可以使用迴圈來代替..

可能在一些極度的需求下goto語句會很好..

但是過多使用goto語句會使得程式除錯和理解都變得難以理解..

甚至很多人認為程式的質量與goto語句的數量呈反比..

雖然我沒有這麼極端的見解..不過很多人都這麼認為的話..

goto語句還是少用為好..

不過對效能其實是沒什麼影響的..只是難以理解而已..

畢竟只是相當於乙個**的跳轉符號而已

8樓:匿名使用者

goto語句最好不要用,不管是用什麼語言來寫,後果不可預知

9樓:匿名使用者

這個問題有些深奧,不太懂

c語言中 goto語句有什麼作用?

10樓:千鋒教育

goto語句也稱為無條抄件轉移襲語句,其

一般格式如下: goto 語句標bai號du; 其中語句標號是按標識zhi符規定書寫的符號

dao, 放在某一語句行的前面,標號後加冒號(:)。語句標號起標識語句的作用,與goto 語句配合使用。

如: label: i++;

loop: while(x<7);

c語言不限制程式中使用標號的次數,但各標號不得重名。goto語句的語義是改變程式流向, 轉去執行語句標號所標識的語句。

goto語句通常與條件語句配合使用。可用來實現條件轉移, 構成迴圈,跳出迴圈體等功能。

但是,在結構化程式設計中一般不主張使用goto語句, 以免造成程式流程的混亂,使理解和除錯程式都產生困難。

11樓:幻想秘境

轉跳到指定

copy

標號**處, 相當於彙編中的jmp指令

int main()

c語言中,我覺得goto語句很好用啊,在做一些判斷時很實用,但為什麼書上說寧願加強迴圈也不用goto語句?

12樓:風若遠去何人留

goto語句也稱為無條件轉移語句,在結構化程式設計中一般不主張使用goto語句, 以免造成程式流程的混亂,使理解和除錯程式都產生困難。

1968年,edsger wybe dijkstra 首先提出「goto語句是有害的」論點,向傳統程式設計方法提出了挑戰,從而引起了人們對程式設計方法討論的普遍重視。

主要理由是:goto語句使程式的靜態結構和動態結構不一致,從而使程式難以理解,難以查錯。去掉goto語句後,可直接從程式結構上反映程式執行的過程。

這樣,不僅使程式結構清晰,便於理解,便於查錯,而且也有利於程式的正確性證明。

後來從理論上證明了:任何程式都可以用順序、分支和重複結構表示出來。這個結論表明,從高階程式語言中去掉goto語句並不影響高階程式語言的程式設計能力,而且編寫的程式的結構更加清晰。

所以目前是不推薦使用goto的。

13樓:匿名使用者

goto用起來是方便,但是破壞了程式的結構,你寫的時候可能很明白,但對以後的維護、其它人員的接手都是破壞性的。乙個良好的程式結構,比效率都重要,對乙個產品來說,可維護性的重要性是很高的,而goto語句正是這方面的大敵。

14樓:

可能是因為goto跳轉的話,跳來跳去,最後會導致程式很難測試,如果出了問題,很難找吧。

15樓:匿名使用者

在簡單的**中用goto語句沒什麼關係,但是在複雜的語句中,容易造成記憶體洩露,或者造成迴圈出錯。

16樓:匿名使用者

goto太牛了,可以轉到任何位置,用太多,不利於程式閱讀,有時還會出現死迴圈,

17樓:匿名使用者

goto的侷限性問題,goto不能從乙個函式跳到另乙個函式

18樓:匿名使用者

用多了自己都就會矇圈。goto是破壞程式結構的殺手。

19樓:栩箭

俗話說,盡信書,不如無書。

少用goto,不過目前很多人會在多重迴圈之中遇到錯誤之類的時候,直接用goto跳到外層在做釋放資源並返回的行為。

ps,還有直接用setjmp等直接在函式間跳轉的來著。

20樓:匿名使用者

事情都沒有絕對的.

一般來說,在沒有養成良好的程式設計習慣前,goto語句一般應盡量避免使用。

不提倡用goto語句,並不代表goto語句無用或說goto語句有害。

該用goto時就用,不必被規矩束縛,關鍵是程式條理清晰,容易讀懂。

21樓:weida愛問

1、為什麼不用goto??原因在於,goto語句會導致源**很難看懂,如果程式設計者在程式中大量使用goto跳轉語句,可讀性可能會大大減低!

2、什麼時候可以用goto??其實一般來說,任何時候都可以!因為這並無語法錯誤。

但嚴格來說,一般在多重迴圈的內迴圈中要跳出時,可用!或者在錯誤處理時可用!linux核心就大量這樣使用!

為什麼都不建議用goto語句進行跳轉呢?我覺得挺方便啊!

22樓:嗨嗨的小犬頭

因為老手經過寫很多**發現,同乙個程式隨著goto語句的使用次數增多,它的邏輯就會成指數上公升,人腦是看不懂它的邏輯,哪怕前一秒是自己寫的,後一秒就不知它跑哪去了。當然你在乙個程式用乙個兩個還是可以的(別聽書上瞎說,其實我認為你偶爾做書上不建議的事也許會有意想不到的收穫),挺方便的(但注意,要自己控制goto數量,多了你會後悔的)。

23樓:風雪大池

一句話來講:容易造成邏輯與程式流程的混亂,降低**的可讀性、可維護性。

少量的lable是很方便,不過如果你依賴上了這個語句,lable一多,goto來goto去的很容易把自己轉懵。尤其當你跟別人合作擼碼的時候,容易挨揍啊。

24樓:

神馬語言?

goto定義不精確,關鍵是在後面差錯的時候不好弄。

為什麼c語言中的go to 語句老師說要小心使用?注意的地方是什麼?

25樓:

goto語句稱為無條件轉移語句,通常與條件語句配合使用。可用來實現條件轉移, 構成迴圈,跳出迴圈體等功能。但是,在結構化程式設計中一般不主張使用goto語句, 以免造成程式流程的混亂,使理解和除錯程式都產生困難。

而且,goto語句一般可以用其他語句來代替。

當然,goto語句也有其優勢,例如可以用goto語句一次性跳出多重迴圈,而不需要使用多個break語句一步一步地跳出,從而使**更為簡潔。

在c語言中使用goto語句的注意事項如下:

使用goto語句只能轉移到到同一函式內,而不能從乙個函式裡轉移到另外乙個函式裡。

使用goto語句在同一函式內進行轉移時,轉移的起點應是函式內一段小功能的結束處,goto的目的label處應是函式內另外一段小功能的開始處。

不能從一段複雜的執行狀態中的位置goto到另外乙個位置,比如,從多重巢狀的迴圈判斷中跳出去就是不允許的。

應該避免向兩個方向跳轉。這樣最容易導致「麵條**」。

所以說,goto語句要小心使用。

26樓:牢悌

goto語句要避免使用,它最大缺點是使得程式可讀性變差,許多教科書上都不介紹這種語句。

27樓:

goto語句可跳出多層迴圈,但是會破壞程式執行流程和結構化程式設計,所以在乙個函式內部用一般不會出現什麼問題,但是在跨函式用的時候就會出現一些奇怪的現象,比如說編譯的時候 出現錯誤或者警告 或者出現亂碼,所以最好盡量少用goto語句

28樓:匿名使用者

使用goto有時候會讓程式的可讀性不好,對於教育者來說,尤其是改卷老師來說,這簡直就是噩夢,所以學校極力不推薦使用goto語句,書上也只是匆匆一筆帶過。但實際中,goto還是可以一用的,根據實際需求使用吧。

吸菸真的是有害的嗎,吸菸真的能提神嗎?

小朋友 吸菸真的有害健康,為了你自己著想,千萬不要吸!一支香菸中的尼古丁可毒死10只小白鼠 有的人一刀就被砍死了,有的人砍十刀都砍不死!當然個人身體抵抗力都不一樣,因人而異啦 有毒的東西吸一次也會有害!最好不要沾,免得上癮。當然有害啦,只是表面上看不到而已,吸的越多傷害越大 吸菸有害 嗎?星知計畫 ...

頭皮屑是怎樣產生的?有害處嗎

頭髮護理的基本方法 一 洗髮和護髮 頭髮的清潔是髮質健康的基礎,而正確的洗滌方法是養護頭髮的重要因素。乾性發皮脂分泌量少,洗髮週期可略長,一般7 10天洗一次。油性發皮脂分泌多,洗髮週期略短,一般3 5天洗一次。中性發皮脂分泌量適中,一般5 7天洗一次。乾性發選擇溫和營養性的洗髮護髮用品,油性發選擇...

避孕藥是怎麼避孕的,對身體有害嗎

避孕藥是通過激素的作用延遲排卵或阻止精子著床,以抑制受精卵形成。避孕藥沒有使用次數的限制,但還是有一定的機率可能影響到月經規律性,平時還是建議主要以常規安全套避孕方式為主,保證身體的健康。避孕藥是怎麼避孕的,對身體有害嗎?避孕藥是殺死了精子來避孕的,常用對身體有害 避孕藥就是調節你體內的激素,不能產...

無籽西瓜是怎麼種的 有害嗎,無籽西瓜的好處與壞處

沒有害的,無籽西瓜不屬於轉基因植物,只是普通的雜交西瓜,屬於遺傳學的基因變異。簡單原理 染色體是生物的遺傳物質,正常有性繁殖的動植物的染色體多數是二倍 成對的 或者偶數倍,三倍體等奇數倍染色體的動植物是不能正常繁殖結籽的。無籽西瓜就是巧妙地利用了這個遺傳原理人工培育的三倍體。目前常見的無籽西瓜主要是...

什麼是精油?精油對身體有害嗎,精油對人體的危害

精油是從植物的花 葉 莖 根或果實中,通過水蒸氣蒸餾法 擠壓法 冷浸法或溶劑提取法提煉萃取的揮發性芳香物質。精油未經稀釋一般最好不要直接使用。精油的揮發性很強,一旦接觸空氣就會很快揮發,也基於這個原因,精油必須用可以密封的瓶子儲存,一旦開瓶使用,也要盡快蓋回蓋子。使用得當是很有益的,請問您具體需要使...