goto跳转语句,无条件跳转,
格式: goto 标签地址;
一般会配合if语句使用
例子:
#include <stdio.h>
#include <math.h>
int main(void) //main是程序入口
{
int num;
printf("请输入彩票号码:");
scanf("%d",&num);
if (num==28)
{
goto Label1;
}else if (num==16)
{
goto Label2;
}else if (num==39)
{
goto Label3;
}else if (num==138)
{
goto Label4;
}else
{
goto Label5;
}
getchar();
getchar();
return 0; //返回一个
Label1:
printf("彩票号码为%d,恭喜,你中了一等奖\n",num);
goto end;
Label2:
printf("彩票号码为%d,恭喜,你中了二等奖\n",num);
goto end;
Label3:
printf("彩票号码为%d,恭喜,你中了三等奖\n",num);
goto end;
Label4:
printf("彩票号码为%d,恭喜,你中了末等奖\n",num);
goto end;
Label5:
printf("你彩票的号码未中奖...");
goto end;
end:
getchar();
getchar();
return 0; //返回一个
}
可以看到使用goto语句十分的繁琐,一般不推荐使用,但是一种特殊情况下可以使用:
即强行跳出所有循环,因为break和continue只能跳出距离它们最近的循环
#include <stdio.h>
int main(void)
{
int i1,i2,i3,i4,i5;//分别表示万位,千位,百位,十位,个位
for (i1=1;i1<=9;i1++) //i1*10000
for (i2=1;i2<=9;i2++) //i2*1000
for (i3=1;i3<=9;i3++) //i3*100
for (i4=1;i4<=9;i4++) //i4*10
for (i5=1;i5<=9;i5++) //i5*1
{
if( i1*i2*i3*i4*i5==i1+i2+i3+i4+i5 )
{
printf("%d \n" ,i1*10000+i2*1000+i3*100+i4*10+i5*1 );
//跳出整个循环
goto endfor;
}
}
endfor:
//B
getchar();
getchar();
return 0;
}