여러분 좋은 오후입니다. 일과 JavaRush 사이에 Kathy Sierra와 Bert Bates의 " Learning Java "를 구입하여 읽기 시작했습니다. 오늘은 교과서에 있는 또 다른 숙제를 했습니다. " class Triangle "(95페이지) 문제를 해결할 수 없었습니다 . IntelliJ IDEA에서는 제가 필요한 답변이 아니었습니다. 나는 두 시간을 보냈고 가능한 모든 옵션을 시도했지만 아무것도 작동하지 않았습니다. 그는 침을 뱉고 답을 찾으러 갔다. 그리고 나의 첫 번째 결정이 있습니다. 결과적으로 이 코드를 IntelliJ IDEA에 입력하면 교과서에 적힌 답이 나오지 않게 됩니다. 답변의 올바른 솔루션은 다음과 같습니다.
public class Triangle
{
double area;
int height;
int lenght;
public static void main(String[] args)
{
int x = 0;
Triangle [] ta = new Triangle[4];
while (x < 4)
{
ta[x] = new Triangle();
ta[x].height = (x + 1) * 2;
ta[x].lenght = x + 4;
ta[x].setArea();
System.out.print("треугольник " +x+ ", зона");
System.out.println(" = " + ta[x].area);
x = x + 1;
}
int y = x;
x = 27;
Triangle t5 = ta[2];
ta[2].area = 343;
System.out.print("y = " + y);
System.out.println(", зона t5 = " + t5.area);
}
void setArea()
{
area = (height + lenght) / 2;
}
}
교과서 저자에 따르면 대답은 다음과 같아야 합니다.
треугольник 0, зона = 4.0
треугольник 1, зона = 10.0
треугольник 2, зона = 18.0
треугольник 3, зона = 28.0
y = 4, зона t5 = 343.0
실제로 대답은 다음과 같습니다.
треугольник 0, зона = 3.0
треугольник 1, зона = 4.0
треугольник 2, зона = 6.0
треугольник 3, зона = 7.0
y = 4, зона t5 = 343.0
내가 할 수 있는 대답은 두 가지뿐이었습니다.
-
기술적인 불완전성과 오타.
-
이 책은 Java 5.0을 사용하여 작성되었으며 Java 8.0에서 문제를 해결했습니다.
GO TO FULL VERSION