(答案:在開關情況下,我忘了我的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