回答編集履歴
1
プログラムの追加\(下のほう\)
answer
CHANGED
@@ -47,4 +47,43 @@
|
|
47
47
|
- Integer.parseInt(a)でint型に変換しているのに、Integer.valueOf(a).intValue()でまたint型に変換している
|
48
48
|
- breakで指定していたラベルが、breakを外した後なのに残っている(loop:while())
|
49
49
|
|
50
|
-
など。これらがスマートに見えない主な要因だと思います。
|
50
|
+
など。これらがスマートに見えない主な要因だと思います。
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
機能は変えていませんが、より攻めてみました。逆に見づらいかもしれませんが行数は少ないです。
|
55
|
+
```java
|
56
|
+
import java.util.*;
|
57
|
+
class Pow {
|
58
|
+
public static void main(String[] args){
|
59
|
+
while(true){
|
60
|
+
Scanner scan = new Scanner(System.in);
|
61
|
+
String str = "";
|
62
|
+
System.out.println("数値を入力して下さい。");
|
63
|
+
|
64
|
+
try{
|
65
|
+
int a = scan.nextInt(), b = scan.nextInt();
|
66
|
+
str += a +"の" + b + "乗は";
|
67
|
+
str += (int)Math.pow(a * 1.0, b * 1.0) + "です。\n";
|
68
|
+
} catch (Exception e) {
|
69
|
+
System.err.println("error:半角数字で入力してください。 ");
|
70
|
+
continue;
|
71
|
+
}
|
72
|
+
|
73
|
+
str += "計算を続けますか?[y/n]";
|
74
|
+
System.out.println(str);
|
75
|
+
|
76
|
+
while(true){
|
77
|
+
str = scan.next();
|
78
|
+
if(str.equals("y"))break;
|
79
|
+
else if(str.equals("n")){
|
80
|
+
System.out.println("計算を終了しました。");
|
81
|
+
return;
|
82
|
+
}
|
83
|
+
|
84
|
+
System.err.println("error:yまたはnを入力してください");
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
```
|