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

Trying to convert a bunch of C++ codes into Java - if statement

本文关键字:代码 C++ 转换 语句 Java-if 一堆      更新时间:2023-10-16

我曾试图将一些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 中正确地编写上述条件

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

Java没有做出同样的假设,所以您需要添加一个int检查=0转换为表达式,即:

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

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

将变量名等转换为Java风格的准则也是值得的。

Java无法自动将int转换为boolean

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

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

为了可读性,我建议在条件的每个部分加上一些括号。不过这是个人偏好的问题。