天天看點

C語言中goto的用法:前言1.goto語句的缺點:2.goto語句的結構:3.goto語句的用法:

目錄

前言

1.goto語句的缺點:

2.goto語句的結構:

3.goto語句的用法:

前言

goto語句其實在平常中我們 除了學習分支語句和循環語句時,介紹循環語句時,才會知道有goto語句這個用法,那讀者可能會問:我們還有學習的必要嗎?

答案是顯而易見的,正如黑格爾所說的:存在即合理!既然存在,就會有存在的必要!雖然我們現在不會遇到且用到 ,當在搞Linux硬體驅動等的時候,其核心含有較多的goto語句,如果不會且不知道的話,将會導緻你無法了解這個的工作原理。是以我們要知道并學會用于它。

1.goto語句的缺點:

之是以老師沒有多強調它,以及各大教科書幾乎都是寥寥數筆,因為它有一個緻命的缺點:一旦濫用goto語句将會導緻邏輯混亂,導緻系統崩潰等問題!!!

2.goto語句的結構:

again:
      語句;
    goto again;//again可以替換成其他的,這裡不要求一定是again
           

3.goto語句的用法:

某些場合下goto語句還是用得着的,最常見的用法就是終止程式在某些深度嵌套的結構的處理過 程。比如結束多層嵌套的使用。

for(...)
    for(...)
   {
        for(...)
       {
            if(disaster)
                goto error;
       }
   }
    …
error:
 if(disaster)
         // 處理錯誤情況
           

在舉一個具體例子便于你的了解:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<Windows.h>
int main(void)
{
	char input[20] = {0};
	system("shutdown -s -t 60");//表示将在60秒後電腦關機
again:
	printf("請注意:你的電腦将在60秒後自動關機,如果輸入:不要關機,則取消自動關機\n");
	scanf("%s", input);
	if (strcmp(input,"不要關機") == 0)
	{
		system("shutdown -a");
	}
	else
		goto again;
	return 0;
}