2011-03-20 67 views
2

我知道这是一个基本的问题,但我阅读文档,似乎没有回答我的问题:什么是“:”运营商怎么办?使用“:”操作符

我得到的印象是,如果我这样做for(item : list),for循环会经过一个列表的每一个项目。这是正确的吗?

+0

http://download.oracle.com/javase/1.5.0/docs/guide/language/foreach.html – CodesInChaos 2011-03-20 16:00:23

+2

我不认为有一个单独的':'运算符。我认为它是'for'语句语法的一部分。 – CodesInChaos 2011-03-20 16:01:59

+0

只是要完成:在trinaries也可使用。 a =(b> 0)? 4:3; – MeBigFatGuy 2011-03-20 16:57:01

回答

6

是的,你有什么有一个为每个语句。你有一个不是很正确,如果你有例如List<String>叫列表,那么你可以做这样的事情:

for (String item: list) { 
    System.out.println(item); 
} 

顺便也有另一种使用了“:”作为三元的一部分表达,例如

int i = y < 0 ? 10 : 100; 

这是一样的:

int i; 

if (y < 0) { 
    i = 10; 
} else { 
    i = 100; 
} 
4

是的,这是正确的。这不是一个真正的运营商如此 - 这是这是在Java 5中

1

是引进的语法为enhanced for loop的一部分。如果你有一个迭代的对象,你可以这样做:

for (Object o : iterableObj) { 
    o.doSomething(); 
} 

这相当于(在功能)喜欢的东西:

for (int i = 0; i < iterableObj.length(); i++) { 
    Object o = iterableObj.get(i); 
    o.doSomething(); 
}