為什麼c語言中的goto語句老師說要小心使用?注意

時間 2021-09-17 08:40:05

1樓:

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

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

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

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

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

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

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

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

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

2樓:牢悌

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

3樓:

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

4樓:匿名使用者

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

c語言中goto語句的用法??舉例來說。

5樓:飛喵某

1、c語言中goto又叫無條件轉移語句,可以讓程式直接跳轉到任意標記的位置。用法就是「goto label……label:」。

下面用一個示例來演示具體的用法,這裡先新建一個c語言的程式檔案,演示使用的是visual studio軟體作為開發工具:

2、輸入goto語句應用**,這裡先定義兩個變數a和b,然後用printf函式列印兩句話,直接用goto語句強制跳轉到列印b語句的end標記位置,此時a的列印就不會執行了:

3、編譯執行程式,按下crtl+f5開啟命令列,就可以看到執行的結果,列印出了b語句,和預期的結果一樣。以上就是c語言中goto的用法:

6樓:哇哎西西

goto語句可以使程式在沒有任何條件的情況下跳轉到指定的位置,所以goto語句又被稱為是無條件跳轉語句。

它的語法如下

goto label;

//其它**

label:

其中,label為我們自己定義的一個標籤,定義的規則與變數的命名相同,它的位置是不固定的,它可以寫在goto語句的後面,也可以寫在它的前面,然而goto語句只能在一個函式內部跳轉,它並不允許跳轉出一個函式外部。

int day = 1;

loop:

if (day <= 31)

上面程式就是利用了goto和if語句來實現了迴圈功能,它與while實現的迴圈功能一樣,其中loop為我們定義的一個label(標籤)。

7樓:丿染指流年丶丶

goto語句也稱為無條件轉移語句,其一般格式如下: goto 語句標號; 其中語句標號是按識別符號規定書寫的符號, 放在某一語句行的前面,標號後加冒號(:)。

語句標號起標識語句的作用,與goto 語句配合使用。

如: label: i++;

loop: while(x<7);

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

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

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

擴充套件資料:

pascal

格式 goto 《標號》;

其中標號需要申請,在程式開頭寫label 《標號1>,《標號2>,……;

其中,標號必須為四位以內的正整數。

在該段落內還需要有《標號》:語句 表示將要轉向的方向。

goto語句與組合語言裡面的jmp指令相同,(無條件轉移)

1+2+3........+8+9+10

nasm描述:

mov ax,1

mov bx,0

start:add bx,ax

inc ax

cmp ax,11;比較指令

jzend ;零轉移

jmp start

end:

;;start: end:是標號

8樓:匿名使用者

用法如下:

goto語句也稱為無條件轉移語句,其一般格式如下:

goto 語句標

號; 其中語句標號是按識別符號規定書寫的符號, 放在某一語句行的前面,標號後加冒號(:)。語句標號起標識語句的作用,與goto 語句配合使用。

例子: label: i++;

loop: while(x<7);

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

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

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

9樓:匿名使用者

基本上c語言中不推薦goto的使用,不符合程式化設計的理念,呵呵。不過也是迴圈的一種方式

舉例如下:

#include

int main(int argc, char *ar**)

10樓:匿名使用者

在c語言中不推薦使用goto,會造成混亂。但goto在有些情況下使用是很好的。

1,在多重迴圈時需要退出迴圈時,break只能退出當前迴圈,而使用goto可以直接跳出。

2,作為一種條件,直接跳轉。

11樓:匿名使用者

for(……;……;……)

……lable:

但是一般不建議使用goto語句,因為這樣很容易出現亂指的現象,比較麻煩···

12樓:匿名使用者

goto 語句標號:

例程:#include

void main()

printf("%d\n",sum);

}建議別用goto 如果濫用的話 會造成程式可讀性差。

13樓:匿名使用者

goto的用法前面已經有人回答了,我就不重複了。

原則上是最好不要用,因為程式要講究結構性、可讀性,goto語句會破壞這點。

但萬事不是絕對的,什麼時候應該用goto語句呢?

只有在程式做的很大,有動一下痛全身的感覺時,但只要加個goto語句卻能省下很多時間和麻煩,這時用goto語句比較好。

另外,團idc網上有許多產品**,便宜有口碑

c語言中for語句是怎麼用的,C語言語言中FOR的用法

for語句通常具有如下形式 for statement1 statement2 statement3 這裡,statement1 statement2和statement3是一般的語句。其中statement2應具有布林型別,但在c中具有int型別 因為c語言不支援布林型別 這段語句的執行流程如下 ...

關於C語言for的語法,c語言中for語句是怎麼用的

i 1表示把i的值設為1,i 表示i自加1即i i 1 i 5應該是for的判斷表示式吧 for i 1 i 5 i 的意思是把i初值設為1,這個設初值在整個for迴圈只會執行一次,每次執行前都會判斷i 5是否成立,如果成立就執行語句,然後i 就是i自加1,不成立則跳出迴圈。然後判斷i 5是否成立 ...

為什麼要用for迴圈語句,c語言中為什麼需要for迴圈?其本義是不是我們需要執行很多次的語句而利用for迴圈只要寫兩個語句就好了?

姣俐夢 只要指定條件為 true 都執行語句塊.for initialization test increment statements 引數initialization 必選項.一個表示式.該表示式只在執行迴圈前被執行一次.test 必選項.一個 boolean 表示式.如果 test 是 tru...