站長資訊網
        最全最豐富的資訊網站

        go是c語言中關鍵字嗎

        go不是c語言的關鍵字,goto才是是c語言的關鍵字。goto語句被稱為無條件轉移語句,允許把控制無條件轉移到同一函數內的被標記的語句;語法“goto label;…label: statement;”,其中label可以是任何除C關鍵字以外的純文本,它可以設置在C程序中goto語句的前面或者后面。

        go是c語言中關鍵字嗎

        本教程操作環境:windows7系統、c99版本、Dell G3電腦。

        C語言中一共有32個關鍵字:

        1 2 3 4 5 6 7 8
        if else switch case default break return goto
        do while for continue typedef struct enum union
        char short int long float double void sizeof
        signed unsigned const auto register static extern volatile

        可以看出go不是c語言的關鍵字,goto才是是c語言的關鍵字。

        c語言 goto語句

        goto語句,在C中又被稱為無條件轉移語句,說是無條件,其實還是有條件的,跳轉范圍還是有限制的,允許把控制無條件轉移到同一函數內的被標記的語句。

        語法

        C 語言中 goto 語句的語法:

        goto label; .. . label: statement;
        登錄后復制

        在這里,label 可以是任何除 C 關鍵字以外的純文本,它可以設置在 C 程序中 goto 語句的前面或者后面。

        go是c語言中關鍵字嗎

        流程圖

        go是c語言中關鍵字嗎

        用法

        首先,我們要確定好我們要轉移去的地方,也就是轉移終點,需要我們去設置一個標識符,也就是label(我沒有在秀英語,當goto語句出錯的時候,報錯內容很有可能會出現這個單詞),同時,我們要在label后面加一個冒號(:),就這樣,我們設置好了標識符,接下來我們設置起點——goto 標識符;。首先我們要告訴計算機,我們要跳了,就是goto的作用,接著我們要告訴他我們要跳去哪里,也就是我們剛剛設置好的標識符,最后像是其他語句一樣,我們給它加上分號(;),意味著語句結束。下面是編輯器頁面的樣子。

        go是c語言中關鍵字嗎

        以及運行結果

        go是c語言中關鍵字嗎

        可見,我們第5行printf沒有執行,直接就來到了第7行printf。

        它可以跳到后面語句,也可以跳到前面。

        go是c語言中關鍵字嗎

        這樣他就成了一個簡便的循環,沒有結束條件

        go是c語言中關鍵字嗎

        大家可以試試跑一下這段代碼,當然我們可以用計數器加if判斷,給他一個結束條件,讓他擁有for和while的能力。

        可惜的是我們沒辦法跨函數運用goto,有其他語句可以實現,我們在此不再贅述。

        go是c語言中關鍵字嗎

        在這里,如果if條件成立,我們在將它輸出之后,望著下面長長的一串層次不齊的中括號,我知道我要在他們那里設置條件,然后一遍又一遍的break,想想就煩,這時候不用goto更待何時?很快啊!我們直接一個goto,跳到了

        go是c語言中關鍵字嗎

        去進行我們下一階段的程序。

        但是不知你是否注意到,我們在上一張圖片中,用了兩個goto,卻讓他們指到了同一個label,是的,我們可以在不同的起點去讓程序跳轉到同一個終點,但是要注意的是我們不可以在同一個goto下跳到兩個label,這很容易理解,換做是你,收到命令,叫你去兩個甚至多個不同的地方,你也會懵逼,我到底該去哪。

        另一個與之前不同的地方就是,我在標識符xiayige:的后面加上了一個分號(;),這是為什么?標識符的后面要跟一條語句才行,可以是賦值可以是聲明,但是如果實在沒有辦法在他后面加語句,我們可以加一個分號,當作空語句,來讓這個標識符運行起來。

        Ps:其實可以在這里聲明一個垃圾變量,或者別的什么無意義的語句,但會使代碼變得不易懂,并不建議這么去做。

        這是大家用goto做的最多的事,至于有什么其他的用法,那就要看你的想象力了,老話說得好,人有多大膽,地有多大產。

        以下是我用到goto的時候。

        #include<stdio.h> int main () {     printf("請輸入要計算的算式,四則運算優先級一樣高,從左到右依次計算n");     int jieguo=0,sz,gongju=0,gongju2=1;     char ysf;     scanf("%d",&jieguo);     if (jieguo==0) //直接輸入等號的話%d似乎是0,有待商榷!!!!!!!! //二次修改,if語句中判斷量時只有0為假,除此之外的數字都表真     {     printf("**,你算**呢n");     goto chaojijieshu;     gongju=1;     gongju2=0;     }     else if (gongju2)          {     printf("請輸入運算符n");          scanf(" %c",&ysf);     //enter包含兩個命令,算是兩個字符r和n,后面的一個會占據scanf的輸入位,所以要清空,或者用空格占位     if(ysf=='=')     printf("**,你算**呢n");     } loop:     while(ysf!='=')     {         if (ysf=='-')         {             printf("請輸入數字n");             scanf("%d",&sz);             jieguo-=sz;             printf("請輸入運算符n");             fflush(stdin);//清空標準輸入流(stdin) fflush是stdio.h中的函數             scanf("%c",&ysf);             if(ysf=='=')             {                 goto jieshu;             }             else             {                 goto loop;             }         }         else if (ysf=='+')         {             printf("請輸入數字n");             scanf("%d",&sz);             jieguo+=sz;             printf("請輸入運算符n");             fflush(stdin);//清空標準輸入流(stdin) fflush是stdio.h中的函數             scanf("%c",&ysf);             if(ysf=='=')             {                 goto jieshu;             }             else             {                 goto loop;             }         }         else if(ysf=='*')         {             printf("請輸入數字n");             scanf("%d",&sz);             jieguo*=sz;             printf("請輸入運算符n");             fflush(stdin);//清空標準輸入流(stdin) fflush是stdio.h中的函數             scanf("%c",&ysf);             if(ysf=='=')             {                 goto jieshu;             }             else             {                 goto loop;             }        }         else if(ysf=='/')         {             printf("請輸入數字n");             scanf("%d",&sz);             while(sz==0)             {                 printf("0能做分母嗎?你算**呢n");             }             jieguo/=sz;             printf("請輸入運算符n");             fflush(stdin);//清空標準輸入流(stdin) fflush是stdio.h中的函數             scanf("%c",&ysf);             if(ysf=='=')             {                 goto jieshu;             }             else             {                 goto loop;             }         }     } jieshu:     printf("結果是%dn",jieguo); chaojijieshu:     if (gongju)     printf("真無語,重開吧n");     return 0;      } //注意注意!!!!!!!!!!!! //enter算是兩個命令,所以有兩個字符,在進行上一次輸入之后 //在來一個enter,會占據scanf的字符位 //所以要清空標準輸入流 //可以利用下述語句 //fflush(stdin); //清空標準輸入流(stdin) fflush是stdio.h中的函數 //以上是最好的解決辦法 //初次之外,還有被稱作偏方的辦法 //二次修改 除此之外,而不是初次之外,打錯字了 //如 //scanf(“ %c”,&ysf”) //在scanf中加一個空格,可以頂掉enter多出來的一個字符 //還有 //加一句 //getchar() //用getchar來捕捉多出來的n
        登錄后復制

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久精品国产亚洲AV麻豆网站| 久久99精品国产99久久6男男| 国产精品成熟老女人视频| 国产精品白丝jkav网站| 日韩人妻无码精品久久久不卡 | 亚洲电影日韩精品| 88国产精品无码一区二区三区| 色欲久久久天天天综合网精品| 精品国产一区二区三区2021| 亚洲国产精品久久久久婷婷软件| 国产综合精品女在线观看| 亚洲AV无码成人精品区在线观看 | 国产精品香蕉在线观看| 国内精品久久久久影院免费| 精品无码AV无码免费专区| 最新精品亚洲成a人在线观看| 久久精品?ⅴ无码中文字幕| 99久久精品费精品国产| 久久精品男人影院| 国产精品高清视亚洲精品| 精品调教CHINESEGAY| 老司机午夜精品视频资源| 亚洲欧洲精品成人久久曰影片| 午夜在线视频91精品| 久久午夜无码鲁丝片午夜精品| 国产亚洲精品免费视频播放| 国产精品高清2021在线| 99热热久久这里只有精品68| 国产91精品黄网在线观看| 视频二区国产精品职场同事| 亚洲国产精品久久66| 88国产精品无码一区二区三区| 四虎永久在线精品国产免费| 91午夜精品亚洲一区二区三区| 2021年精品国产福利在线| 国产91精品一区二区麻豆亚洲| 国产精品免费看久久久香蕉| 国产亚洲精品a在线观看| 久久99精品国产麻豆蜜芽| 四虎国产精品永久在线看| 日本精品一区二区三区四区|