是否可以在if / else语句中写入此冒号?

时间:2014-09-03 02:56:59

标签: java

从我读过的内容来看,":"在Java中充当if / then / else语句。在我的代码中,我想用它应该代表的实际代码替换这个运算符,但是我想出了一个大脑放屁。

int array[] = new int[]{x,y,z};
int neg = 0;
for (int n : array) 
{
  if (n<0) {
    neg++;
  }
} 

基本上我试图读取数组并列出底片的数量,但是我想在没有此运算符或for语句的情况下尝试它。我觉得它是可能的(因为我正在处理数组中有限数量的整数)但是我并不完全确定当它没有赋值时如何将int n写入if / else语句。有点大脑放屁。

2 个答案:

答案 0 :(得分:0)

For-Each operator :与三元运算符(JLS-15.25:不同。你可以做点什么

// if (n<0) {
//   neg++;
// }
neg += (n < 0) ? 1 : 0;

答案 1 :(得分:0)

在下面的代码片段中,您要对数组中的每个int n进行检查,如果n小于0,则为真,将1添加到neg。

for (int n : array) 
{
  if (n<0) {
    neg++;
  }
}

你仍然需要做

for(int n : array)

但是可以在里面进行检查

neg += (n < 0) ? 1 : 0;

转换为,如果n小于0则将1加到neg,如果不加0则为。

以下是一些很好的例子。 http://alvinalexander.com/java/edu/pj/pj010018