goto 虽然号称“无条件跳转”,事实上倒是有些条件限制。主要是三条:
1、goto只能在当前的同一程序段内跳转;
2、goto 可以从循环内跳转到循环外的代码,但不能从循环外的代码跳到循环内;
3、在有goto的跳转范围内,不能再使用C++允许的临时变量声明。
例1
-
[root@localhost program.c]# cat 2.c
-
#include<stdio.h>
-
-
int main()
-
{
-
int i=1,sum=0;
-
loop:
-
if(i<=100)
-
{ sum=sum+i;
-
i++;
-
goto loop;
-
}
-
printf("sum=%d\n",sum);
-
-
return 211;
-
}
[root@localhost program.c]# gcc -Wall 2.c -o 2
[root@localhost program.c]# ./2
sum=5050
[root@localhost program.c]# echo $?
211
例2
-
[root@localhost program.c]# cat 1.c
-
#include<stdio.h>
-
-
int main(void)
-
{
-
int i;
-
for (i=0;i<4;i++)
-
{
-
printf("i=%d\t",i);
-
if(i==2)
-
goto label;
-
else
-
continue;
-
}
-
label:printf("This is goto usage!\n");
-
-
return 234;
-
}
[root@localhost program.c]# gcc -Wall 1.c -o 1
[root@localhost program.c]# ./1
i=0 i=1 i=2 This is goto usage!
[root@localhost program.c]# echo $?
234
说明:i<=2的时会输出i的值并用水平制表符\t隔开,i>2则不会输出。
阅读(1487) | 评论(0) | 转发(0) |