注册 登录
编程论坛 C语言论坛

请问一下,goto SKIP; 什么意思,即具体用法

huaheshang 发布于 2020-02-05 02:13, 2188 次点击
#include<graphics.h>
#include<conio.h>
#include<cmath>

#define PI 3.14159


int main()
{
initgraph(640,480);
unsigned short key;
double a,r;//a是角度,r是弧度
a = 0;
r = a/360*2*PI;
double vx = 1*cos(r), vy = 1*sin(r);
double x = 320, y = 240;
while(1)
{
setfillcolor(WHITE);
solidcircle(x,y,30);
if(kbhit())
{
key = getch();
if(a == 360) a = 0;
if(a < 0) a += 360;
switch(key)
{
case 'w':
if(a<90 || a>270) a -= 10;
if(a>90 && a<270) a +=10;
if(a == 90) a = 270;
if(a == 270) goto SKIP;
break;
case 's':
if(a<90 || a>270) a += 10;
if(a>90 && a<270) a -=10;
if(a == 270) a = 90;
if(a == 90) goto SKIP;
break;
case 'a':
if(a>0 && a<180) a += 10;
if(a>180 && a<360) a -=10;
if(a == 0) a = 180;
if(a == 180) goto SKIP;
break;
case 'd':
if(a>0 && a<180) a -= 10;
if(a>180 && a<360) a +=10;
if(a == 180) a = 0;
if(a == 0) goto SKIP;
break;
}
}
Sleep(10);
SKIP:setfillcolor(BLACK);
solidcircle(x,y,30);
r = a/360*2*PI;
vx = 1*cos(r);
vy = 1*sin(r);
x += vx;
y += vy;
if(x <= 30 || x >= 610)
{
if(a>=0 && a<=180) a = 180 - a;
else a = a - 180;
}
if(y <= 30 || y >= 450)
{
a = 360 - a;
}
}
}
2 回复
#2
xianfajushi2020-02-05 03:49
goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
if(a == 0) goto SKIP;如果条件成立则跳转

SKIP:setfillcolor(BLACK);与goto 语句配合使用

[此贴子已经被作者于2020-2-5 03:52编辑过]

#3
huaheshang2020-02-06 08:46
谢谢
1