JavaRush /Java Blog /Random-JA /Java 学習における誤り (Kathy Sierra と Bert Bates 著)
lookinbody
レベル 11
Москва

Java 学習における誤り (Kathy Sierra と Bert Bates 著)

Random-JA グループに公開済み
皆さん、こんにちは。仕事と JavaRush の合間に、Kathy Sierra と Bert Bates の「 Learning Java 」を購入して読み始めました。今日は教科書の宿題をもう一つやりました。" class Triangle " p. 95 の問題を解決できませんでした。IntelliJ IDEA では、答えは私が必要としていたものではありませんでした。2時間を費やし、考えられるすべてのオプションを試しましたが、何もうまくいきませんでした。彼は唾を吐きながら答えを求めた。そして、私の最初の決断があります。そのため、このコードを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
考えられる答えは 2 つだけでした。
  1. 技術的な不完全さとタイプミス。

  2. この本は Java 5.0 を使用して書かれていますが、私は Java 8.0 で問題を解決します。

私の推測がどの程度正しいかを教えてください。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION