teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

書式の改善

2020/10/11 14:31

投稿

hona_tan
hona_tan

スコア45

title CHANGED
File without changes
body CHANGED
@@ -120,4 +120,6 @@
120
120
  $javac StringToInt2.java
121
121
  $java StringToInt2
122
122
  3月は31日あります。
123
- ```
123
+ ```
124
+
125
+ Eclipse_2020-06を使ってプログラムを書いています。

4

書式の改善

2020/10/11 14:31

投稿

hona_tan
hona_tan

スコア45

title CHANGED
File without changes
body CHANGED
@@ -5,48 +5,56 @@
5
5
  ```
6
6
  public class StringToInt2 {
7
7
  public static void main(String[] args) {
8
- int n;
8
+ int n;
9
9
  try {
10
10
  n = Integer.parseInt(args[0]);
11
11
  } catch(NumberFormatException e) {
12
12
  char c = args[0].charAt(0);
13
13
 
14
-
15
14
  switch(c) {
16
15
  case '一':
17
- System.out.println("一月は31日です");
16
+ //System.out.println("一月は31日です");
17
+ n = 1;
18
18
  break;
19
19
  case '二':
20
- System.out.println("二月は28日です");
20
+ //System.out.println("二月は28日です");
21
+ n = 2;
21
22
  break;
22
23
  case '三':
23
- System.out.println("三月は31日です");
24
+ //System.out.println("三月は31日です");
25
+ n = 3;
24
26
  break;
25
27
  case '四':
26
- System.out.println("四月は30日です");
28
+ //System.out.println("四月は30日です");
29
+ n = 4;
27
30
  break;
28
31
  case '五':
29
- System.out.println("五月は31日です");
32
+ //System.out.println("五月は31日です");
33
+ n = 5;
30
34
  break;
31
35
  case '六':
32
- System.out.println("六月は30日です");
36
+ //System.out.println("六月は30日です");
37
+ n = 6;
33
38
  break;
34
39
  case '七':
35
- System.out.println("七月は31日です");
40
+ //System.out.println("七月は31日です");
41
+ n = 7;
36
42
  break;
37
43
  case '八':
38
- System.out.println("八月は31日です");
44
+ //System.out.println("八月は31日です");
45
+ n = 8;
39
46
  break;
40
47
  case '九':
41
- System.out.println("九月は30日です");
48
+ //System.out.println("九月は30日です");
49
+ n = 9;
42
50
  break;
43
51
  default :
44
- System.out.println("不正な値です。");
52
+ //System.out.println("不正な値です。");
45
53
  n = -1;
46
54
  }
47
55
  }
48
-
56
+
49
- if (n < 13) {
57
+ if (n > 0 && n < 13) {
50
58
  int days;
51
59
  switch(n) {
52
60
  case 1:
@@ -85,12 +93,21 @@
85
93
  default:
86
94
  days = 31;
87
95
  }
88
- System.out.println(n + "月は" + days + "日あります。");
96
+ System.out.println(args[0].charAt(0) + "月は" + days + "日あります。");
97
+ } else {
98
+ System.out.println("不正な値です。");
89
99
  }
90
100
  }
91
101
  }
92
102
  ```
103
+ エラー
104
+ ```
105
+ Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at StringToInt2.main(StringToInt2.java:5)
93
106
 
107
+ ```
108
+
109
+
110
+
94
111
  漢数字を入力した場合。
95
112
  ```
96
113
  $javac StringToInt2.java

3

書式の改善

2020/10/11 14:26

投稿

hona_tan
hona_tan

スコア45

title CHANGED
File without changes
body CHANGED
@@ -11,43 +11,42 @@
11
11
  } catch(NumberFormatException e) {
12
12
  char c = args[0].charAt(0);
13
13
 
14
- int days2;
14
+
15
15
  switch(c) {
16
16
  case '一':
17
- days2 = 31;
17
+ System.out.println("一月は31日です");
18
18
  break;
19
19
  case '二':
20
- days2 = 28;
20
+ System.out.println("二月は28日です");
21
21
  break;
22
22
  case '三':
23
- days2 = 31;
23
+ System.out.println("三月は31日です");
24
24
  break;
25
25
  case '四':
26
- days2 = 30;
26
+ System.out.println("四月は30日です");
27
27
  break;
28
28
  case '五':
29
- days2 = 31;
29
+ System.out.println("五月は31日です");
30
30
  break;
31
31
  case '六':
32
- days2 = 30;
32
+ System.out.println("六月は30日です");
33
33
  break;
34
34
  case '七':
35
- days2 = 31;
35
+ System.out.println("七月は31日です");
36
36
  break;
37
37
  case '八':
38
- days2 = 31;
38
+ System.out.println("八月は31日です");
39
39
  break;
40
40
  case '九':
41
- days2 = 30;
41
+ System.out.println("九月は30日です");
42
42
  break;
43
43
  default :
44
44
  System.out.println("不正な値です。");
45
45
  n = -1;
46
46
  }
47
- System.out.println(c + "月は" + days + "日あります。");
48
47
  }
49
48
 
50
- if (n < 0 && n > 10) {
49
+ if (n < 13) {
51
50
  int days;
52
51
  switch(n) {
53
52
  case 1:
@@ -58,25 +57,31 @@
58
57
  break;
59
58
  case 3:
60
59
  days = 31;
61
- break;
60
+ break;
62
- case 4:
61
+ case 4:
63
- days = 30;
62
+ days = 30;
64
- break;
63
+ break;
65
- case 5:
64
+ case 5:
66
- days = 31;
65
+ days = 31;
67
- break;
66
+ break;
68
- case 6:
67
+ case 6:
69
- days = 30;
68
+ days = 30;
70
- break;
69
+ break;
71
- case 7:
70
+ case 7:
72
- days = 31;
71
+ days = 31;
73
- break;
72
+ break;
74
- case 8:
73
+ case 8:
75
- days = 31;
74
+ days = 31;
76
- break;
75
+ break;
77
- case 9:
76
+ case 9:
78
- days = 30;
77
+ days = 30;
79
- break;
78
+ break;
79
+ case 10:
80
+ days = 31;
81
+ break;
82
+ case 11:
83
+ days = 30;
84
+ break;
80
85
  default:
81
86
  days = 31;
82
87
  }
@@ -86,9 +91,16 @@
86
91
  }
87
92
  ```
88
93
 
89
- このような実行結果になって欲いです
94
+ 漢数字を入力た場合
90
95
  ```
91
96
  $javac StringToInt2.java
92
97
  $java StringToInt2
93
- 三月は31日あります。
98
+ 三月は31日あります。
99
+ ```
100
+
101
+ 数字を入力した場合
102
+ ```
103
+ $javac StringToInt2.java
104
+ $java StringToInt2
105
+ 3月は31日あります。
94
106
  ```

2

誤字を修正

2020/10/11 09:24

投稿

hona_tan
hona_tan

スコア45

title CHANGED
File without changes
body CHANGED
@@ -89,6 +89,6 @@
89
89
  このような実行結果になって欲しいです。
90
90
  ```
91
91
  $javac StringToInt2.java
92
- $java StringToInt2
92
+ $java StringToInt2
93
93
  三月は31日あります。
94
94
  ```

1

if文の中を修正。

2020/10/11 05:56

投稿

hona_tan
hona_tan

スコア45

title CHANGED
File without changes
body CHANGED
@@ -42,11 +42,12 @@
42
42
  break;
43
43
  default :
44
44
  System.out.println("不正な値です。");
45
- n = -1;
45
+ n = -1;
46
46
  }
47
+ System.out.println(c + "月は" + days + "日あります。");
47
48
  }
48
49
 
49
- if () {
50
+ if (n < 0 && n > 10) {
50
51
  int days;
51
52
  switch(n) {
52
53
  case 1: