2013-12-16 32 views
1

我正在尝试将一些C++代码写入java,现在我已经将下面的代码写入到java中,但它引发错误!试图将一堆C++代码转换为Java - 如果语句

if(ShapeNotFound && xd*yd - nPixel[k] < xd+yd)    // Condition for RECTANGLE 
{ 

    System.out.print("\n  "+in+" \t  Rectangle \n"); 
    fileWriter3.write("\n  "+in+" \t  Rectangle \n"); 
    Shape[k] = 2; 
    ShapeNotFound = 0; 

} 

我收到以下错误:

The operator && is undefined for the argument type(s) int, boolean 

请帮帮忙,告诉我怎么写上面,如果条件正确的Java

回答

5

C和C++均假设为整数0是错误的,所有其他值都是真实的。

Java没有做出同样的假设,所以你需要添加一个检查为INT!到表达即:

if((ShapeNotFound!=0) && (xd*yd - nPixel[k] < xd+yd))  

或可替代的ShapeNotFound变量应该是布尔类型不是int = 0。

这将值得将变量名等转换为Java风格指南。

0

Java无法自动将int转换为boolean

0

看起来像ShapeNotFound是一个整数,但是你隐式地把它看作一个布尔值(true或false)。 Java的只喜欢真正的布尔表达式,那么你需要的条件更改为类似这样:

if (ShapeNotFound != 0 && xd*yd - nPixel[k] < xd+yd) 

为了增强可读性,我建议把一些括号轮条件的每个部分。但这是个人喜好的问题。