回答編集履歴

3

InputMismatchExceptionはは

2018/02/07 18:33

投稿

umyu
umyu

スコア5846

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.Arrays;
7
+ import java.util.stream.Collectors;
9
- import java.util.HashSet;
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 = Stream.of("exit", "quit").collect(Collectors.toSet());
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
- while (true) {
17
+ while (true) {
23
- String input = sc.nextLine();
18
+ String input = sc.nextLine();
24
- // 終了条件は最初に判定する。
19
+ // 終了条件は最初に判定する。
25
- if (exit.contains(input)) {
20
+ if (exit.contains(input)) {
26
- System.out.println(input + "が入力されたので処理を終了します");
21
+ System.out.println(input + "が入力されたので処理を終了します");
27
- break;
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
- // System.outはなく System.errへ
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
- System.err.println(misma);
30
+ System.out.println("範囲外です");
31
+ }
41
32
  }
42
33
  }
43
-
44
34
  }
45
-
46
35
  }
47
36
 
48
37
  class Cst2 {

2

Stream.ofに変更

2018/02/07 18:32

投稿

umyu
umyu

スコア5846

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

補足!

2018/02/07 17:43

投稿

umyu
umyu

スコア5846

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;