goto的用法
下面这个程序我想用goto跳出下面for循环,但编译时报错:errorC2065:'end':undeclaredidentifier,该怎么改啊?#include<st...
下面这个程序我想用goto跳出下面for循环,但编译时报错:error C2065: 'end' : undeclared identifier,该怎么改啊?
#include <stdio.h>
void main()
{
int i=0;
if(i==0) goto end;
for(i=0; i<10; i++)
printf("%d ", i);
end;
printf("\nthe end");
} 展开
#include <stdio.h>
void main()
{
int i=0;
if(i==0) goto end;
for(i=0; i<10; i++)
printf("%d ", i);
end;
printf("\nthe end");
} 展开
5个回答
展开全部
臭名昭著的goto出场了。
goto的汉义为“转到”,在计算机语言里,它的完整名称为:“无条件跳转语句”。几乎所有高级语言都会劝你尽量不要使用它goto。因为它会破坏程序的模块性,严重降低一段程序的可读性。若是老外写的书,则比喻使用大量goto的代码:“像意大利面条”。嗯,其实北京的杂酱面也很缠绕……可惜没有走向世界。
goto的用法是,首先要在代码中某处加上一个位标(也称标号),然后在代码中的需处,加上goto,并写让要跳转到位标。比如你在第三行代码加一个位标:A : ,然后可以在第10行写上一个goto A,程序执行到该行时,就将跳到第三行。
加位标的方法是在一空行加上位标的名称,命名规则和变量一样,但最后要加上一冒号“:”。
例如:
int i = 1;
A :
cout << i << endl;
i++;
if(i <= 10)
goto A;
... ...
goto 虽然号称“无条件跳转”,事实上倒是有些条件限制。主要是三条。
1、goto只能在当前的同一程序段内跳转;
2、goto 可以从循环内跳转到循环外的代码,但不能从循环外的代码跳到循环内;
3、在有goto的跳转范围内,不能再使用C++允许的临时变量声明。
好了,其实笔者写程序近10年,惟一用到goto的地方就是:将一段简单的程序故意用goto写得面目全非,以期能让破解程序的人因为眼晕而放弃功击……一句老话:如果没有什么特殊理由,不要在程序里使用goto。
可能你会觉得没有给出答案,但是看了以上的东西之后,我相信你会找到出错的地方,也许你已经找着了。呵呵
goto的汉义为“转到”,在计算机语言里,它的完整名称为:“无条件跳转语句”。几乎所有高级语言都会劝你尽量不要使用它goto。因为它会破坏程序的模块性,严重降低一段程序的可读性。若是老外写的书,则比喻使用大量goto的代码:“像意大利面条”。嗯,其实北京的杂酱面也很缠绕……可惜没有走向世界。
goto的用法是,首先要在代码中某处加上一个位标(也称标号),然后在代码中的需处,加上goto,并写让要跳转到位标。比如你在第三行代码加一个位标:A : ,然后可以在第10行写上一个goto A,程序执行到该行时,就将跳到第三行。
加位标的方法是在一空行加上位标的名称,命名规则和变量一样,但最后要加上一冒号“:”。
例如:
int i = 1;
A :
cout << i << endl;
i++;
if(i <= 10)
goto A;
... ...
goto 虽然号称“无条件跳转”,事实上倒是有些条件限制。主要是三条。
1、goto只能在当前的同一程序段内跳转;
2、goto 可以从循环内跳转到循环外的代码,但不能从循环外的代码跳到循环内;
3、在有goto的跳转范围内,不能再使用C++允许的临时变量声明。
好了,其实笔者写程序近10年,惟一用到goto的地方就是:将一段简单的程序故意用goto写得面目全非,以期能让破解程序的人因为眼晕而放弃功击……一句老话:如果没有什么特殊理由,不要在程序里使用goto。
可能你会觉得没有给出答案,但是看了以上的东西之后,我相信你会找到出错的地方,也许你已经找着了。呵呵
展开全部
#include <stdio.h>
void main()
{
int i=0;
if(i==0) goto end;
for(i=0; i<10; i++)
printf("%d ", i);
end: printf("the end\n");
}
goto后面接标志,标志后面要接语句
void main()
{
int i=0;
if(i==0) goto end;
for(i=0; i<10; i++)
printf("%d ", i);
end: printf("the end\n");
}
goto后面接标志,标志后面要接语句
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不建议使用GOTO
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
goto语句是无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号。语句标号起标识语句的作用,与goto 语句配合使用。
C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向, 转去执行语句标号所标识的语句。
goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。
例如:
while(1)
{
i++;
if(i>100)goto out
}
out:
i=0;
C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向, 转去执行语句标号所标识的语句。
goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。
例如:
while(1)
{
i++;
if(i>100)goto out
}
out:
i=0;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询