从理论上goto语句没有必要,但是在某些场合中goto语句还是用得着的。
其中:最常见的就是终止程序在某些深度嵌套结构中的处理过程。
例如:(下面的这个例子)一次跳出两层或多层循环,这种情况用break语句无法达到目的。
//goto语句
#include <stdio.h>
int main()
{
int arr1[] = {1,2,3,4,5};
int arr2[] = {2,3,4,5,6};
int i = 0;
for(i = 0;i<sizeof(arr1)/sizeof(arr1[0]);i++)
{
int j = 0;
for(j = 1;j<sizeof(arr2)/sizeof(arr2[0]);j++)
{
if(arr1[i] == arr2[j])
goto end;
}
}
end:
if(i<sizeof(arr1)/sizeof(arr2[0]))
{
printf("有\n");
}
else
{
printf("没有\n");
}
return 0;
}