
for (Iterator it = ...; it.hasNext(); ){ //...}(代码中的前面的声明以及for循环标题中的多余分号都是多余的。)
无论您使用此语法还是
while循环,都取决于品味,两者的含义完全相同。for循环的通用语法为:
for (<init stmt>; <loop cond>; <iterate stmt>) { <body>; }等效于:
<init stmt>;while (<loop cond>) { <body>; <iterate stmt>; }编辑: 实际上, 如果
使用init语句声明了变量,则上述两种形式并不完全等效。在这种情况下,迭代器变量的范围将有所不同。对于for循环,在while循环的情况下,作用域仅限于循环本身,但是,作用域扩展到了封闭块的末尾(不足为奇,因为声明位于循环之外)。
另外,正如其他人指出的那样,在较新版本的Java中,for循环有一种简写形式:
for (Iterator<Foo> it = myIterable.iterator(); it.hasNext(); ) { Foo foo = it.next(); //...}可以写成:
for (Foo foo : myIterable) { //...}使用这种形式,您当然会丢失对迭代器的直接引用,这是必需的,例如,如果要在迭代时从集合中删除项目。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)