如何将以下C++语句转换为Java?

3 c++ java

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

for(i=0; i<MAX; i++)
    ans+=(b[i]!=-1);  
Run Code Online (Sandbox Code Playgroud)

我理解它的方式如下:

for(int i=0;i<MAX;i++)
    if(b[i]!=-1)
        ans+=b[i]; 
Run Code Online (Sandbox Code Playgroud)

但是,我对上面的逻辑得到了一个荒谬的答案.这句话到底意味着什么?

Pau*_*ton 8

我认为Java等价物是

for(int i=0;i<MAX;i++)
   if(b[i]!=-1)
      ans++;
Run Code Online (Sandbox Code Playgroud)

在C++中,true语句的计算结果为1.Java不这样做,所以你必须明确增加ans.

另外,请注意,如果MAX是数组的长度(我不知道它是否是),你可以为每个循环使用a.

for (int a : b)
    if (a != -1)
        ans++;
Run Code Online (Sandbox Code Playgroud)