Попытка преобразовать кучу кодов C ++ в Java — оператор if

Я пытался написать несколько кодов 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

1

Решение

C и C ++ предполагают, что для целых чисел 0 равно false, а все остальные значения — true.

Java не делает того же самого предположения, поэтому вам нужно добавить проверку для int! = 0 в выражение, т.е.

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

Или же ваша переменная ShapeNotFound должна иметь тип boolean, а не int.

Также стоило бы конвертировать имена переменных и т. Д. В руководства по стилю Java.

5

Другие решения

Ява не может конвертировать int в boolean автоматически.

0

Это выглядит как ShapeNotFound является целым числом, но вы неявно трактуете его как логическое (истина или ложь). Java любит только подлинно логические выражения, поэтому вам нужно изменить условие на что-то вроде этого:

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

Для удобства чтения я бы предложил заключить несколько скобок вокруг каждой части условия. Это вопрос личных предпочтений, хотя.

0
По вопросам рекламы [email protected]