(ANSWER:スイッチケースで、私は私のbreak文を忘れてしまったと私はそれがスキャナをオフに投げていたと思います!)inputMismatchException javaの
は、私は形の3種類が含まれているファイルを読むためにプログラムを書いています対応する次元が続き、それらをオブジェクト配列に書き込みます。サークルは半径をリストし、エッジの長さを正方形にしますが、三角形についてはベースと高さを指定します。私には論理的だと書いていましたが、コードがInputMismatchExceptionのエラーをスローし、私が間違っている場所を見つけるのが難しいです。
スキャナが読み取るファイルは簡単です。文字列の後に1または(文字列が三角形の場合)2つの2倍になります。私は、三角形の高さの変数を作成し、その文字列が三角形であるという条件の下で、別の倍精度をその変数に読み込む必要があると考えました。しかし、不一致例外がスローされますか?
for (int i = 0; fs.hasNext(); i++) {
String word = fs.next();
double field = fs.nextDouble();
double triangleH = 0.0;
switch (word) {
case circle:
shape[i] = new Circle(field);
case square:
shape[i] = new Square(field);
case triangle:
triangleH = fs.nextDouble();
//^^^line where the error is thrown
shape[i] = new IsoscelesTriangle(field, triangleH);
}
}
これは 'fs'ファイルのサンプルです。
triangle 385.64 796.55
circle 455.71
triangle 697.73 261.17
circle 273.11
triangle 1051.95 879.48
triangle 425.96 772.16
square 864.19
二等辺三角形クラスは、私はあなたのコード内の任意のエラーが表示されないこの
public class IsoscelesTriangle implements Shape {
private double base = 0.0;
private double height = 0.0;
private double area = 0.0;
public IsoscelesTriangle(double b, double h) {
setBase(b);
setHeight(h);
setArea(b, h);
}
//more methods
}
私たちは、二等辺三角形の方法で二重、二重を受け入れますか? –
公開IsoscelesTriangle(double b、double h){ setBase(b); setHeight(h); setArea(b、h); ; } –
@JasonVanBenschotenそれはクラスです。そのクラスにはコンストラクタがありますか? – Jeyaprakash