回答編集履歴
3
InputMismatchExceptionはは
answer
CHANGED
@@ -2,47 +2,36 @@
|
|
2
2
|
Cst2.fbntとCst2.fbnが質問文のコードに存在しませんでした。
|
3
3
|
|
4
4
|
```Java
|
5
|
-
import java.util.InputMismatchException;
|
6
5
|
import java.util.Scanner;
|
7
6
|
import java.util.Set;
|
8
|
-
import java.util.
|
7
|
+
import java.util.stream.Collectors;
|
9
|
-
import java.util.
|
8
|
+
import java.util.stream.Stream;
|
10
9
|
|
11
10
|
public class Cst {
|
12
11
|
|
13
12
|
public static void main(String[] args) {
|
14
13
|
// 重複を許可しないなら、配列よりSetを使用するのがベター!
|
15
|
-
Set<String> exit =
|
14
|
+
Set<String> exit = Stream.of("exit", "quit").collect(Collectors.toSet());
|
16
|
-
// もしくはStreamが分かりづらいなら以下のHashSetを使ったコード。
|
17
|
-
//Set<String> exit = new HashSet<>(Arrays.asList("exit", "quit"));
|
18
|
-
|
19
15
|
// try~with~Resources文を使う!
|
20
16
|
try (Scanner sc = new Scanner(System.in)) {
|
21
|
-
try {
|
22
|
-
|
17
|
+
while (true) {
|
23
|
-
|
18
|
+
String input = sc.nextLine();
|
24
|
-
|
19
|
+
// 終了条件は最初に判定する。
|
25
|
-
|
20
|
+
if (exit.contains(input)) {
|
26
|
-
|
21
|
+
System.out.println(input + "が入力されたので処理を終了します");
|
27
|
-
|
22
|
+
break;
|
28
|
-
}
|
29
|
-
// 数字に変換。NumberFormatExceptionのチェックもできればすること!
|
30
|
-
int n = Integer.valueOf(input);
|
31
|
-
if (n < 71) {
|
32
|
-
System.out.println(n + "番目のフィボナッチ数は:" + Cst2.fbnt(n));
|
33
|
-
System.out.println(n + "番目までのフィボナッチ数列は:" + Cst2.fbn(n));
|
34
|
-
} else {
|
35
|
-
System.out.println("範囲外です");
|
36
|
-
}
|
37
23
|
}
|
38
|
-
} catch (InputMismatchException misma) {
|
39
|
-
//
|
24
|
+
// 数字に変換。NumberFormatExceptionのチェックもできればすること!
|
25
|
+
int n = Integer.valueOf(input);
|
26
|
+
if (n < 71) {
|
27
|
+
System.out.println(n + "番目のフィボナッチ数は:" + Cst2.fbnt(n));
|
28
|
+
System.out.println(n + "番目までのフィボナッチ数列は:" + Cst2.fbn(n));
|
29
|
+
} else {
|
40
|
-
|
30
|
+
System.out.println("範囲外です");
|
31
|
+
}
|
41
32
|
}
|
42
33
|
}
|
43
|
-
|
44
34
|
}
|
45
|
-
|
46
35
|
}
|
47
36
|
|
48
37
|
class Cst2 {
|
2
Stream.ofに変更
answer
CHANGED
@@ -12,7 +12,10 @@
|
|
12
12
|
|
13
13
|
public static void main(String[] args) {
|
14
14
|
// 重複を許可しないなら、配列よりSetを使用するのがベター!
|
15
|
+
Set<String> exit = Stream.of("exit", "quit").collect(Collectors.toSet());
|
16
|
+
// もしくはStreamが分かりづらいなら以下のHashSetを使ったコード。
|
15
|
-
Set<String> exit = new HashSet<>(Arrays.asList("exit", "quit"));
|
17
|
+
//Set<String> exit = new HashSet<>(Arrays.asList("exit", "quit"));
|
18
|
+
|
16
19
|
// try~with~Resources文を使う!
|
17
20
|
try (Scanner sc = new Scanner(System.in)) {
|
18
21
|
try {
|
1
補足!
answer
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
質問文にはコンパイルエラーが発生しない最小限のソースコードを記載してくださいな。
|
2
|
+
Cst2.fbntとCst2.fbnが質問文のコードに存在しませんでした。
|
3
|
+
|
1
4
|
```Java
|
2
5
|
import java.util.InputMismatchException;
|
3
6
|
import java.util.Scanner;
|