欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          go是c語言中關(guān)鍵字嗎

          go不是c語言的關(guān)鍵字,goto才是是c語言的關(guān)鍵字。goto語句被稱為無條件轉(zhuǎn)移語句,允許把控制無條件轉(zhuǎn)移到同一函數(shù)內(nèi)的被標(biāo)記的語句;語法“goto label;…label: statement;”,其中l(wèi)abel可以是任何除C關(guān)鍵字以外的純文本,它可以設(shè)置在C程序中g(shù)oto語句的前面或者后面。

          go是c語言中關(guān)鍵字嗎

          本教程操作環(huán)境:windows7系統(tǒng)、c99版本、Dell G3電腦。

          C語言中一共有32個(gè)關(guān)鍵字:

          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語言的關(guān)鍵字,goto才是是c語言的關(guān)鍵字。

          c語言 goto語句

          goto語句,在C中又被稱為無條件轉(zhuǎn)移語句,說是無條件,其實(shí)還是有條件的,跳轉(zhuǎn)范圍還是有限制的,允許把控制無條件轉(zhuǎn)移到同一函數(shù)內(nèi)的被標(biāo)記的語句。

          語法

          C 語言中 goto 語句的語法:

          goto label; .. . label: statement;
          登錄后復(fù)制

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

          go是c語言中關(guān)鍵字嗎

          流程圖

          go是c語言中關(guān)鍵字嗎

          用法

          首先,我們要確定好我們要轉(zhuǎn)移去的地方,也就是轉(zhuǎn)移終點(diǎn),需要我們?nèi)ピO(shè)置一個(gè)標(biāo)識(shí)符,也就是label(我沒有在秀英語,當(dāng)goto語句出錯(cuò)的時(shí)候,報(bào)錯(cuò)內(nèi)容很有可能會(huì)出現(xiàn)這個(gè)單詞),同時(shí),我們要在label后面加一個(gè)冒號(hào)(:),就這樣,我們設(shè)置好了標(biāo)識(shí)符,接下來我們設(shè)置起點(diǎn)——goto 標(biāo)識(shí)符;。首先我們要告訴計(jì)算機(jī),我們要跳了,就是goto的作用,接著我們要告訴他我們要跳去哪里,也就是我們剛剛設(shè)置好的標(biāo)識(shí)符,最后像是其他語句一樣,我們給它加上分號(hào)(;),意味著語句結(jié)束。下面是編輯器頁面的樣子。

          go是c語言中關(guān)鍵字嗎

          以及運(yùn)行結(jié)果

          go是c語言中關(guān)鍵字嗎

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

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

          go是c語言中關(guān)鍵字嗎

          這樣他就成了一個(gè)簡便的循環(huán),沒有結(jié)束條件

          go是c語言中關(guān)鍵字嗎

          大家可以試試跑一下這段代碼,當(dāng)然我們可以用計(jì)數(shù)器加if判斷,給他一個(gè)結(jié)束條件,讓他擁有for和while的能力。

          可惜的是我們沒辦法跨函數(shù)運(yùn)用goto,有其他語句可以實(shí)現(xiàn),我們在此不再贅述。

          go是c語言中關(guān)鍵字嗎

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

          go是c語言中關(guān)鍵字嗎

          去進(jìn)行我們下一階段的程序。

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

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

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

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

          以下是我用到goto的時(shí)候。

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

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)