我有以下代码片段,其中 'b' 是一个整数数组,MAX 是一个整数,一个整数 'ans' 存储结果。我正在调试一些代码,并且在使用 Java 时对 C++ 不是很熟悉。 C++代码是:

for(i=0; i<MAX; i++)
    ans+=(b[i]!=-1);

我理解的方式是:
for(int i=0;i<MAX;i++)
    if(b[i]!=-1)
        ans+=b[i];

但是,我用上面的逻辑得到了一个荒谬的答案。该声明的真正含义是什么?

最佳答案

我认为 Java 等价物是

for(int i=0;i<MAX;i++)
   if(b[i]!=-1)
      ans++;

在 C++ 中,真语句的计算结果为 1 。 Java 不会这样做,因此您必须显式增加 ans

另外,请注意,如果 MAX 是数组的长度(我不知道它是否是),您可以为每个循环使用 a 。
for (int a : b)
    if (a != -1)
        ans++;

关于java - 如何将以下 C++ 语句转换为 Java?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33657682/

10-11 05:58