- 论坛徽章:
- 0
|
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 |
|