java中的goto有没有goto关键字

2011年4月 Java大版内专家分月排行榜第二2010年8月 Java大版内专家分月排行榜第二2010年5月 Java大版内专家分月排行榜第二2008年2月 Java大版内专家分月排行榜第二2007年7月 Java大版内专家分月排行榜第二
2011年2月 Java大版内专家分月排行榜第三2010年9月 Java大版内专家分月排行榜第三2008年9月 Java大版内专家分月排行榜第三2008年1月 Java大版内专家分月排行榜第三2007年11月 Java大版内专家分月排行榜第三2007年9月 Java大版内专家分月排行榜第三
2011年4月 Java大版内专家分月排行榜第二2010年8月 Java大版内专家分月排行榜第二2010年5月 Java大版内专家分月排行榜第二2008年2月 Java大版内专家分月排行榜第二2007年7月 Java大版内专家分月排行榜第二
2011年2月 Java大版内专家分月排行榜第三2010年9月 Java大版内专家分月排行榜第三2008年9月 Java大版内专家分月排行榜第三2008年1月 Java大版内专家分月排行榜第三2007年11月 Java大版内专家分月排行榜第三2007年9月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。goto是否java的关键字 - J2SE当前位置:& &&&goto是否java的关键字goto是否java的关键字&&网友分享于:&&浏览:21次goto是不是java的关键字书上写的java关键字里有goto,但从网上一看说goto是java的保留关键字,碰巧昨天笔试遇到了此类笔试,让从选项中选出java的关键字,选项中有goto,选还是不选?应该怎么确认是不是关键字?请大神指教。
------解决方案--------------------Java语言中goto是保留关键字,没有goto语句,也没有任何使用goto关键字的地方。
Java中也可在特定情况下,通过特定的手段,来实现goto的功能。显然Java不愿意开发者随意跳转程序。下面解释两个特定:
特定情况:只有在循环体内,比如for、while语句(含do...while语句)中。
特定手段:语句标签和循环控制关键字break、continue,语法格式是:break/continue&语句标签。
我所见的程序段里面没见过goto,但是当时学习的时候老师说所有要用标签的内容都有其它解决办法替代,所以对于标签老师就这么一句给我们跳过了
我所见过的程序段里面就这么一个是用标签的:
//&设置语法高亮
public&void&setHighLight(StyledDocument&doc,&String&token,&int&start,&int&length)
//&保存需要对当前单词对应的外观属性
SimpleAttributeSet&currentAttributeSet&=&
outer:&for&(SimpleAttributeSet&att&:&attMap.keySet())
//&取出当前颜色对应的所有关键字
ArrayList&keywords&=&attMap.get(att);
//&遍历所有关键字
for&(Object&keyword&:&keywords)
//&如果该关键字与当前单词相同
if&(keyword.toString().equals(token))
//&跳出循环,并设置当前单词对应的外观属性
currentAttributeSet&=&
//&如果当前单词对应的外观属性不为空
if&(currentAttributeSet&!=&null)
//&设置当前单词的颜色
doc.setCharacterAttributes(start,&length,&currentAttributeSet,&false);
{//&否则使用普通外观来设置该单词
doc.setCharacterAttributes(start,&length,&normalAttr,&false);
但是这个段落完全可以用一个递归实现的。------解决方案--------------------摘自《Java基础入门教程.pdf》
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有java的goto语句&& 标签的使用&&
&&&&&编程语言中一开始就有goto关键词了。事实上,goto起源于汇编语言的程序控制:“若条件A成立,则跳到这里;否则跳到那里”。
&&&&&&goto语句是在源码级上的跳转,这使其招致了不好的声誉。若一个程序总是从一个地方跳到另一个地方,还有什么办法能识别程序的控制流程呢?
&&&&&&其实真正的问题并不在于使用goto语句,而在于goto的滥用;而且在少数情况下,goto还是组织控制流程的最佳手段。
&&&&&&尽管goto仍是Java中的一个保留字,但在语言中并未使用它;Java没有goto。然而,Java也能完成一些类似于跳转的操作,这与break和continue这两个关键词有关。它们其实不是一个跳转,而是中断迭代语句的一种方法。之所以把它们纳入goto问题中讨论,是因为它们使用相同的机制:标签。
&&&&&&&标签是后面跟有冒号的标示符,就想下面这样:
&&&&&&&&&&lable1:
&&&&&&&在java中,标签起作用的唯一地方刚好是在迭代语句之前。而在迭代之前设置标签的唯一理由是:我们希望在其中嵌套另一个迭代或者一个开关。这是由于break和continue关键词通常只中断当前循环,但若是随同标签一起使用,他们就会中断循环,知道标签所在的地方:
下面是标签在for循环中的示例:
@Test&public void TestLable(){&&int i=0;&&outer:&&&for(; ){&&&&inner:&&&&&for(; i&10; i++){&&&&&&System.out.println(&i = &+i);&&&&&&if(i == 2){&&&&&&&System.out.println(&continue&);&&&&&&&&&&&&&}&&&&&&if(i == 3){&&&&&&&System.out.println(&break&);&&&&&&&i++;&&&&&&&&&&&&&}&&&&&&if(i == 7){&&&&&&&System.out.println(&continue outer&);&&&&&&&i++;&&&&&&&&&&&&&}&&&&&&if(i == 8){&&&&&&&System.out.println(&break outer&);&&&&&&&&&&&&&}&&&&&&for(int k = 0; k & 5; k++){&&&&&&&if(k == 3){&&&&&&&&System.out.println(&continue inner&);&&&&&&&&&&&&&&&}&&&&&&}&&&&&}&&&}&&System.out.println(&结束&);&}
i = 0continue inneri = 1continue inneri = 2continuei = 3breaki = 4continue inneri = 5continue inneri = 6continue inneri = 7continue outeri = 8break outer结束
同样的规则亦适用于while:
1)、一般的continue会退回内层循环的开头,并继续执行。
2)、带标签的continue会到达标签的位置,并重新进入紧接在哪个标签后面的循环。
3)、一般的break会中断并跳出当前循环。
4)、带标签的break会中断并跳出标签所指的循环。
重点:在Java中需要使用标签的唯一理由就是因为有循环嵌套的存在,而且想从多层嵌套中break或者
被转藏 : 2次
被转藏 : 2次

我要回帖

更多关于 java中有没有goto语句 的文章

 

随机推荐