Rumah > pembangunan bahagian belakang > Tutorial C#.Net > Adakah go kata kunci dalam bahasa C?

Adakah go kata kunci dalam bahasa C?

青灯夜游
Lepaskan: 2023-01-12 17:27:27
asal
4776 orang telah melayarinya

go bukan kata kunci dalam bahasa C, goto ialah kata kunci dalam bahasa C. Pernyataan goto dipanggil pernyataan pemindahan tanpa syarat, yang membenarkan pemindahan kawalan tanpa syarat kepada pernyataan berlabel dalam fungsi yang sama ialah "label goto;...label: pernyataan;", di mana label boleh menjadi sebarang pernyataan tulen selain daripada Teks kata kunci C, yang boleh ditetapkan sebelum atau selepas pernyataan goto dalam program C.

Adakah go kata kunci dalam bahasa C?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi c99, komputer Dell G3.

Terdapat 32 kata kunci dalam bahasa C:

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

Dapat dilihat bahawa go bukanlah kata kunci dalam bahasa C, goto ialah kata kunci dalam bahasa C.

Pernyataan goto bahasa C

pernyataan goto, juga dikenali sebagai pernyataan pemindahan tanpa syarat dalam C, dikatakan tidak bersyarat, tetapi sebenarnya ia masih bersyarat . Lompat Skop pemindahan masih terhad, membenarkan pemindahan kawalan tanpa syarat kepada pernyataan bertanda dalam fungsi yang sama.

Sintaks

Sintaks pernyataan goto dalam bahasa C:

goto label;
..
.
label: statement;
Salin selepas log masuk

Di sini, label boleh berupa sebarang kata kunci tulen kecuali Teks kata kunci C, yang boleh ditetapkan sebelum atau selepas pernyataan goto dalam program C.

Adakah go kata kunci dalam bahasa C?

Carta Aliran

Adakah go kata kunci dalam bahasa C?

Penggunaan

Pertama, kita perlu tentukan Nah, di mana kita ingin memindahkan, yang merupakan titik akhir pemindahan, kita perlu menetapkan pengecam, iaitu label (saya tidak menunjukkan bahasa Inggeris. Apabila ralat berlaku dalam pernyataan goto, perkataan ini mungkin muncul dalam kandungan ralat). Pada masa yang sama, kita perlu menambah titik bertindih (:) selepas label Dengan cara ini, kita telah menetapkan pengecam, dan kemudian kita menetapkan titik permulaan - pengecam goto;. Mula-mula kita perlu memberitahu komputer bahawa kita akan melompat, yang merupakan peranan goto Kemudian kita perlu memberitahunya di mana kita mahu melompat, yang merupakan pengecam yang baru kita tetapkan, seperti pernyataan lain, kita menambah mata kepadanya (;) bermaksud akhir pernyataan. Inilah rupa halaman editor.

Adakah go kata kunci dalam bahasa C?

dan hasil yang sedang dijalankan

Adakah go kata kunci dalam bahasa C?

Ia boleh dilihat bahawa printf kami dalam baris 5 tidak dilaksanakan, dan ia pergi terus ke baris 7 printf.

Ia boleh melompat ke pernyataan seterusnya atau ke hadapan.

Adakah go kata kunci dalam bahasa C?

Dengan cara ini ia menjadi gelung mudah tanpa syarat penghujung

Adakah go kata kunci dalam bahasa C?

Anda boleh cuba menjalankan ini Sudah tentu, kami boleh menggunakan kaunter dan jika penghakiman untuk memberikannya syarat akhir, supaya ia mempunyai keupayaan untuk dan sementara.

Malangnya, kami tidak boleh menggunakan goto merentas fungsi. Terdapat kenyataan lain yang boleh dilaksanakan, jadi kami tidak akan menerangkan secara terperinci di sini.

Adakah go kata kunci dalam bahasa C?

Di sini, jika keadaan if adalah benar, selepas kita mengeluarkannya, melihat rentetan panjang kurungan tidak sekata di bawah, saya tahu apa yang saya mahu lakukan Mereka menetapkan syarat di sana , dan kemudian putus lagi dan lagi Menjengkelkan untuk memikirkannya. Bagaimana saya boleh menunggu tanpa goto pada masa ini. Tidak lama lagi! Kami terus pergi dan melompat ke

Adakah go kata kunci dalam bahasa C?

untuk meneruskan ke peringkat seterusnya program kami.

Tetapi saya tertanya-tanya jika anda perasan bahawa dalam gambar terakhir, kami menggunakan dua goto, tetapi mereka menunjuk pada label yang sama Ya, kami boleh membuat program melompat pada titik permulaan yang berbeza. tetapi harus diingat bahawa kita tidak boleh melompat ke dua label di bawah goto yang sama Ini mudah difahami Jika anda, menerima pesanan yang meminta anda pergi ke dua atau lebih tempat yang berbeza, Anda juga akan keliru, di mana. patutkah saya pergi?

Satu lagi perbezaan dari sebelumnya ialah saya menambah koma bertitik (;) selepas pengecam xiayige: Mengapa ini? Pengecam mesti diikuti dengan pernyataan, yang boleh menjadi tugasan atau pernyataan Tetapi jika benar-benar tiada cara untuk menambah pernyataan selepasnya, kita boleh menambah koma bertitik dan menganggapnya sebagai pernyataan kosong untuk membuat pengecam dijalankan.

Ps: Sebenarnya, anda boleh mengisytiharkan pembolehubah sampah di sini, atau kenyataan lain yang tidak bermakna, tetapi ia akan menyukarkan kod untuk difahami, dan tidak disyorkan untuk berbuat demikian.

Ini adalah perkara yang paling banyak digunakan oleh semua orang untuk kegunaan lain, ia bergantung pada imaginasi anda.

Berikut ialah apabila saya menggunakan 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==&#39;=&#39;)
    printf("**,你算**呢\n");
    }
loop:
    while(ysf!=&#39;=&#39;)
    {
        if (ysf==&#39;-&#39;)
        {
            printf("请输入数字\n");
            scanf("%d",&sz);
            jieguo-=sz;
            printf("请输入运算符\n");
            fflush(stdin);//清空标准输入流(stdin) fflush是stdio.h中的函数
            scanf("%c",&ysf);
            if(ysf==&#39;=&#39;)
            {
                goto jieshu;
            }
            else
            {
                goto loop;
            }
        }
        else if (ysf==&#39;+&#39;)
        {
            printf("请输入数字\n");
            scanf("%d",&sz);
            jieguo+=sz;
            printf("请输入运算符\n");
            fflush(stdin);//清空标准输入流(stdin) fflush是stdio.h中的函数
            scanf("%c",&ysf);
            if(ysf==&#39;=&#39;)
            {
                goto jieshu;
            }
            else
            {
                goto loop;
            }
        }
        else if(ysf==&#39;*&#39;)
        {
            printf("请输入数字\n");
            scanf("%d",&sz);
            jieguo*=sz;
            printf("请输入运算符\n");
            fflush(stdin);//清空标准输入流(stdin) fflush是stdio.h中的函数
            scanf("%c",&ysf);
            if(ysf==&#39;=&#39;)
            {
                goto jieshu;
            }
            else
            {
                goto loop;
            }        }
        else if(ysf==&#39;/&#39;)
        {
            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==&#39;=&#39;)
            {
                goto jieshu;
            }
            else
            {
                goto loop;
            }
        }
    }
jieshu:
    printf("结果是%d\n",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
Salin selepas log masuk

Cadangan berkaitan: "Tutorial Video C"

Atas ialah kandungan terperinci Adakah go kata kunci dalam bahasa C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan