试图将一堆C ++代码转换为Java - if语句

时间:2013-12-16 09:48:13

标签: java c++ opencv operators javacv

我试图将一些C ++代码编写到java中,现在我已经将代码写入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中正确编写上述条件

3 个答案:

答案 0 :(得分:5)

C和C ++都假设对于整数,0为假,所有其他值均为真。

Java没有做出相同的假设,所以你需要在表达式中添加对int!= 0的检查,即:。

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

或者你的ShapeNotFound变量应该是boolean类型而不是int。

将变量名称等转换为Java样式指南也是值得的。

答案 1 :(得分:0)

Java无法自动将int转换为boolean

答案 2 :(得分:0)

看起来ShapeNotFound是一个整数,但你隐式将其视为布尔值(true或false)。 Java只喜欢真正的布尔表达式,因此您需要将条件更改为以下内容:

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

为了便于阅读,我建议在条件的每个部分放置一些括号。这是个人偏好的问题。