欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言goto語句簡單使用詳解

 更新時間:2022年01月09日 11:41:56   作者:Josvin  
C語言中提供了可以隨意濫用的 goto語句和標(biāo)記跳轉(zhuǎn)的標(biāo)號,本文主要介紹了C語言goto語句簡單使用詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

簡單介紹

C語言中提供了可以隨意濫用的 goto語句和標(biāo)記跳轉(zhuǎn)的標(biāo)號。
從理論上 goto語句是沒有必要的,實踐中沒有g(shù)oto語句也可以很容易的寫出代碼。
但是某些場合下goto語句還是用得著的,最常見的用法就是終止程序在某些深度嵌套的結(jié)構(gòu)的處理過程,例如一次跳出兩層或多層循環(huán)。
這種情況使用break是達(dá)不到目的的。它只能從最內(nèi)層循環(huán)退出到上一層的循環(huán)。

語法

C 語言中 goto 語句的語法:

goto label;
..
.
label: statement;

示例對比

#include<stdio.h>

int main() {
	int c = 1;
	if (c) {
		goto start;
	}

start:
	printf("實例1\n");
	printf("實例2\n");
	printf("實例3\n");
	printf("實例4\n");
	printf("實例5\n");
}

輸出結(jié)果:

在這里插入圖片描述

#include<stdio.h>

int main() {
	int c = 1;
	if (c) {
		goto start;
	}


	printf("實例1\n");
	printf("實例2\n");
	printf("實例3\n");
start:	
	printf("實例4\n");
	printf("實例5\n");
}

輸出結(jié)果:

在這里插入圖片描述

下面是使用goto語句的一個例子:

關(guān)機程序

#include <stdio.h>
int main()
{
  char input[10] = {0};
  system("shutdown -s -t 60");
again:
  printf("電腦將在1分鐘內(nèi)關(guān)機,如果輸入:我是豬,就取消關(guān)機!\n請輸入:>");
  scanf("%s", input);
  if(0 == strcmp(input, "我是豬"))
 {
    system("shutdown -a");
 }
 else
 {
    goto again;
 }
  return 0;
  }

而如果不適用goto語句,則可以使用循環(huán):

#include <stdio.h>
#include <stdlib.h>
int main()
{
  char input[10] = {0};
  system("shutdown -s -t 60");
  while(1)
 {
    printf("電腦將在1分鐘內(nèi)關(guān)機,如果輸入:我是豬,就取消關(guān)機!\n請輸入:>");
    scanf("%s", input);
    if(0 == strcmp(input, "我是豬"))
   {
      system("shutdown -a");
      break;
   }
 }
  return 0;
}

goto語言真正適合的場景如下:

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

在這里可以代替多次 break 的跳出

到此這篇關(guān)于C語言goto語句簡單使用詳解的文章就介紹到這了,更多相關(guān)C語言goto語句使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談C++左值引用和右值引用

    淺談C++左值引用和右值引用

    下面小編就為大家?guī)硪黄獪\談C++左值引用和右值引用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C語言小游戲之簡易版三子棋(棋盤可自由擴展)

    C語言小游戲之簡易版三子棋(棋盤可自由擴展)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)三子棋游戲,還可以自由擴展棋盤大小,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Python繪圖之詳解matplotlib

    Python繪圖之詳解matplotlib

    這篇文章主要介紹了Python繪圖之詳解matplotlib,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 淺析C#與C++相關(guān)概念的比較

    淺析C#與C++相關(guān)概念的比較

    以下是對C#與C++的相關(guān)概念進(jìn)行了比較和介紹。需要的朋友可以過來參考下
    2013-08-08
  • C++填坑的重寫,重載和隱藏的詳解

    C++填坑的重寫,重載和隱藏的詳解

    這篇文章主要介紹了C++中重載、重寫(覆蓋)和隱藏的區(qū)別,是C++面向?qū)ο蟪绦蛟O(shè)計非常重要的概念,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • C語言中qsort函數(shù)的介紹與用法實例

    C語言中qsort函數(shù)的介紹與用法實例

    C語言的標(biāo)準(zhǔn)庫提供了一個重要的排序函數(shù)qsort給C語言使用者使用,qsort函數(shù)將快速排序的算法封裝起來,這篇文章主要給大家介紹了關(guān)于C語言中qsort函數(shù)的介紹與用法的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • C語言實現(xiàn)YUV文件轉(zhuǎn)JPEG格式

    C語言實現(xiàn)YUV文件轉(zhuǎn)JPEG格式

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實現(xiàn)將YUV文件轉(zhuǎn)為JPEG格式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)堆排序圖文示例

    C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)堆排序圖文示例

    這篇文章主要為大家介紹了C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)堆排序的圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 使用C++遞歸求解跳臺階問題

    使用C++遞歸求解跳臺階問題

    這篇文章主要介紹了使用C++求解跳臺階問題的方法,通過遞歸算法來解決,不算難,文中給出了計算思路,需要的朋友可以參考下
    2016-02-02
  • C語言之單向鏈表詳解及實例代碼

    C語言之單向鏈表詳解及實例代碼

    這篇文章主要介紹了C語言之單向鏈表的相關(guān)資料,及實例代碼,幫助大家學(xué)習(xí)參考,,需要的朋友可以參考下
    2016-09-09

最新評論