(答案:在开关情况下,我忘了我的break语句,我想这是扔扫描仪电源!)InputMismatchException时的java
我正在写一个程序来读取含有三种形状的文件,然后是相应的维度并将它们写入对象数组中。圆圈列出了它们的半径,将它们的边缘长度进行了平方,但对于三角形,它们的基准和高度!我写了对我来说合乎逻辑的东西,但是我的代码会抛出InputMismatchException错误,并且无法找到我要出错的地方。
扫描仪读取的文件很简单,一个字符串,后跟1或(如果字符串是三角形)2加倍。我想我会为三角形的高度创建一个变量,并且在字符串是三角形的情况下,它应该读入另一个变量。但它会引发mismatchException?
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
的IsoscelesTriangle类看起来像这样
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
}
我们展示等腰三角形方法均不承担双倍,双倍? –
public isoscelesTriangle(double b,double h){setBase(b);} setHeight(h); setArea(b,h); } –
@JasonVanBenschoten这是一堂课。这个类是否有构造函数? – Jeyaprakash