免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1038 | 回复: 0
打印 上一主题 下一主题

笔记:JAVA学习之“控制执行流程” [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-03 23:09 |只看该作者 |倒序浏览

       
       
       
       
       
       
JAVA学习笔记
第4章
控制执行流程
1.foreach语法:for(datatype
x: f)
foreach语法用于数组;
任何一个返回一个数组的方法都可以使用foreach;
foreach还可以用于任何Iterable对象;
示例:
       
       
               
                       
                       
                        [color="#7f0055"]public
                        [color="#7f0055"]class
                        ForEachString {
                          
                          [color="#7f0055"]public
                        [color="#7f0055"]static
                        [color="#7f0055"]void
                        main(String[] args)
                          
                          {
                          
                                [color="#7f0055"]for[color="#000000"]([color="#7f0055"]char
                        c: "I am a newbiew of
                        JAVA"[color="#000000"].toCharArray())
                          
                                System.[color="#0000c0"]out.print(c
                        + [color="#2a00ff"]" "[color="#000000"]);
                          
                          }
                       
                       
                        [color="#000000"]}
               
       
结果:
       
       
               
                        I
                          a m   a   n e w b i e w   o f   J A V A
                       
               
       
2.标签
goto仍然是JAVA中的一个保留字,但在语言中并未使用它;JAVA中没有goto。
JAVA有类似goto的机制:标签
       
       
               
                       
label1:
                       
outer-iteration {
                       
        inner-iteration{
                       
                //...
                       
                break; //(1)
                       
                //...
                       
                continue; //(2)
                       
                //...
                       
                continue label1; //(3)
                       
                //...
                       
                break label1; //(4)
                       
        }
                       
}
               
       
在(1)中,break中断内部迭代,回到外部迭代;
在(2)中,continue使执行点回到内部迭代的起始处;
在(3)中,continue
label1同时中断内部迭代以及外部迭代,直接转到label1处,随后,从外部迭代开始继续迭代过程;
在(4)中,break
label1会中断所有迭代,回到label1处,但并不重新进入迭代;
示例
       
       
               
                        [color="#7f0055"]import
                        [color="#7f0055"]static
                        net.mindview.util.Print.*;
                       
                       
                        [color="#7f0055"]public
                        [color="#7f0055"]class
                        LabelFor {
                        [color="#000000"]        [color="#7f0055"]public
                        [color="#7f0055"]static
                        [color="#7f0055"]void
                        main(String[] args) {
                        [color="#000000"]                [color="#7f0055"]int
                        i = 0;
                        [color="#000000"]                outer:
                        [color="#000000"]                [color="#7f0055"]for
                        (; [color="#7f0055"]true
                        ;) {
                        [color="#000000"]                        inner:
                        [color="#000000"]                        [color="#7f0055"]for
                        (; i
                        [color="#000000"]                                [color="#000000"]print
                        ([color="#2a00ff"]"i = "
                        + i);
                        [color="#000000"]                                [color="#7f0055"]if
                        (i == 2) {
                        [color="#000000"]                                        [color="#000000"]print[color="#000000"]([color="#2a00ff"]"continue"[color="#000000"]);
                        [color="#000000"]                                        [color="#7f0055"]continue[color="#000000"];
                        [color="#000000"]                                }
                        [color="#000000"]                                [color="#7f0055"]if
                        (i == 3) {
                        [color="#000000"]                                        [color="#000000"]print[color="#000000"]([color="#2a00ff"]"break"[color="#000000"]);
                        [color="#000000"]                                        i++;
                        [color="#000000"]                                        [color="#7f0055"]break[color="#000000"];
                        [color="#000000"]                                }
                        [color="#000000"]                                [color="#7f0055"]if
                        (i == 7) {
                        [color="#000000"]                                        [color="#000000"]print[color="#000000"]("continue
                        outer"[color="#000000"]);
                        [color="#000000"]                                        i++;
                        [color="#000000"]                                        [color="#7f0055"]continue
                        outer;
                        [color="#000000"]                                }
                        [color="#000000"]                                [color="#7f0055"]if
                        (i == 8) {
                        [color="#000000"]                                        [color="#000000"]print[color="#000000"]("break
                        outer"[color="#000000"]);
                        [color="#000000"]                                        [color="#7f0055"]break
                        outer;
                        [color="#000000"]                                }
                        [color="#000000"]                                [color="#7f0055"]for
                        ([color="#7f0055"]int
                        k = 0; k
                        [color="#000000"]                                        [color="#7f0055"]if
                        (k == 3) {
                        [color="#000000"]                                                [color="#000000"]print[color="#000000"]("continue
                        inner"[color="#000000"]);
                        [color="#000000"]                                                [color="#7f0055"]continue
                        inner;
                        [color="#000000"]                                        }
                        [color="#000000"]                                }
                        [color="#000000"]                               
                        [color="#000000"]                        }
                        [color="#000000"]                               
                        [color="#000000"]                }
                        [color="#000000"]                [color="#000000"]print[color="#000000"]("Byebye,
                        finished"[color="#000000"]);
                        [color="#000000"]        }
                       
                       
                        [color="#000000"]}
                       
                       
               
       
结果:
       
       
               
                        i
                        = 0
                        continue
                        inner
                        i
                        = 1
                        continue
                        inner
                        i
                        = 2
                        [color="#000000"]continue
                        i
                        = 3
                        [color="#000000"]break
                        i
                        = 4
                        continue
                        inner
                        i
                        = 5
                        continue
                        inner
                        i
                        = 6
                        continue
                        inner
                        i
                        = 7
                        continue
                        outer
                        i
                        = 8
                        break
                        outer
                        Byebye,
                        finished
               
       
同样的规则适用于while:
一般的continue会退回最内层循环的开头,并继续执行;
带标签的continue会达到标签的位置,并重新进入紧跟在标签后面的循环;
一般的break会中断并跳出当前循环;
带标签的break会中断并跳出标签所指的循环。
要记住的重点:在JAVA里需要使用标签的唯一理由是因为有循环嵌套存在,而且想存多层嵌套中break或者continue。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/86340/showart_1678490.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP