我试图将一些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中正确编写上述条件
答案 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)
为了便于阅读,我建议在条件的每个部分放置一些括号。这是个人偏好的问题。