Я пытался написать несколько кодов 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 равно false, а все остальные значения — true.
Java не делает того же самого предположения, поэтому вам нужно добавить проверку для int! = 0 в выражение, т.е.
if((ShapeNotFound!=0) && (xd*yd - nPixel[k] < xd+yd))
Или же ваша переменная ShapeNotFound должна иметь тип boolean, а не int.
Также стоило бы конвертировать имена переменных и т. Д. В руководства по стилю Java.
Ява не может конвертировать int
в boolean
автоматически.
Это выглядит как ShapeNotFound
является целым числом, но вы неявно трактуете его как логическое (истина или ложь). Java любит только подлинно логические выражения, поэтому вам нужно изменить условие на что-то вроде этого:
if (ShapeNotFound != 0 && xd*yd - nPixel[k] < xd+yd)
Для удобства чтения я бы предложил заключить несколько скобок вокруг каждой части условия. Это вопрос личных предпочтений, хотя.