我有以下代码片段,其中 '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/