是的,goto实际上挺好用的。
拿这个例子说,如果要在 return 之前 添加一个函数,如果不用 goto,那么得写 3 份,
使用 goto,直接跳到 标签处,写一份就可以了。
拿这个例子说,如果要在 return 之前 添加一个函数,如果不用 goto,那么得写 3 份,
使用 goto,直接跳到 标签处,写一份就可以了。

我就是真命天子,顺我者生,逆我者死!
程序代码:#include <stdio.h>
#include <string.h>
char max(char a[], int l, int r);
int main(void)
{
char *s = "TINYEXAMPLE" ;
char ret = 0;
ret = max(s, 0, strlen(s)-1);
getchar();
return 0;
}
char max(char a[], int l, int r)
{
char u, v, t;
int m = (l+r)/2;
if (l == r)
return a[l];
u = max(a, l, m);
v = max(a, m+1, r);
if (u > v)
return u;
else
return v;
} 多说一句:goto是不能从一个函数跳到另一函数的。
程序代码:for(i = 0; i < x; ++i)
for(j = 0; i < y; ++j)
for(k = 0; i < z; ++k)
for(u = 0; i < t; ++u)
if(array[i][j][k][t] == FIND)
goto eureka;
因为break仅能跳出一个循环,所以用goto会更方便。

程序代码:
char max(char a[], int l, int r)
{
char u, v, t;
int m = (l+r)/2;
do
{
if (l == r)
{
t = a[l];
break;
}
u = max(a, l, m);
v = max(a, m+1, r);
if (u > v)
{
t = u;
break;
}
else
{
t = v;
break;
}
}while (0);
return t;
}
