回答編集履歴

1

インデントの揃え方

2020/07/08 06:28

投稿

momon-ga
momon-ga

スコア4820

test CHANGED
@@ -9,3 +9,159 @@
9
9
 
10
10
 
11
11
  try以降のforあたりから、おかしいですよね?
12
+
13
+
14
+
15
+ --
16
+
17
+ 追記
18
+
19
+
20
+
21
+ > eclipseに「}を入れて終了させてください」と言われたので、その通りにしました。
22
+
23
+
24
+
25
+ 足りないからつけたすものでなく、自分の考えた通りの位置にカッコをつけてください。
26
+
27
+ なので、構造をわかりやすくするためにインデントが重要になります。
28
+
29
+
30
+
31
+ > インデントはこちらでよろしいでしょうか?
32
+
33
+
34
+
35
+ インデントをそろえてるというのは波カッコの位置をそろえて、波カッコの中をタブ1個分(4とか8個の空白)ずらして、波カッコで囲われた範囲をすぐに判断できるようにします。
36
+
37
+
38
+
39
+ なので
40
+
41
+
42
+
43
+ ```
44
+
45
+ }
46
+
47
+ }
48
+
49
+ ```
50
+
51
+ とか
52
+
53
+ ```
54
+
55
+ }}
56
+
57
+ ```
58
+
59
+
60
+
61
+ みたいなコードが出てきたらおかしいと思ってよいです。
62
+
63
+
64
+
65
+ eclipseを使っているなら、[ソース]-[フォーマット] (Ctrl+Shift+F)するとこんな感じになります。
66
+
67
+ ```java
68
+
69
+ public static String getInput() {
70
+
71
+ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
72
+
73
+ double a = 0, b = 0, c = 0, d = 0, x1 = 0, x2 = 0;
74
+
75
+ String line = null;
76
+
77
+ Scanner sc = new Scanner(System.in);
78
+
79
+ System.out.println("Please Input: a,b,c");
80
+
81
+ try {
82
+
83
+ for (int i = 0; i < 3; i++) {
84
+
85
+ line = reader.readLine();//ここでキーボード入力を行えるようにする?
86
+
87
+ System.out.println("line=" + a + ", " + b + ", " + c);//上で入力した数字をa,b,cとして認識させたい。
88
+
89
+ }
90
+
91
+ } catch (NumberFormatException | IOException e) {
92
+
93
+ System.out.println("Could you enter the number?");
94
+
95
+ System.out.println("Please try again!");
96
+
97
+ }
98
+
99
+ if (a == 0) {
100
+
101
+ x1 = x2 = (-c) / b;
102
+
103
+ } else {
104
+
105
+ if (d < 0) {
106
+
107
+ d = b * b - 4 * a * c;
108
+
109
+ System.out.println("There is no solution because the discriminant is negative. D=" + d);
110
+
111
+ } else {
112
+
113
+ x1 = (-b + Math.sqrt(d)) / (2 * a);
114
+
115
+ x2 = (-b - Math.sqrt(d)) / (2 * a);
116
+
117
+ System.out.println("x1=" + x1);
118
+
119
+ System.out.println("x2=" + x2);
120
+
121
+ }
122
+
123
+ }
124
+
125
+ return line;
126
+
127
+ }
128
+
129
+ ```
130
+
131
+
132
+
133
+ forループでNuberFormatExceptionが発生したときに再入力をさせたいのだろうと
134
+
135
+ インデントをずらしている?のかもしれませんが、実際にはループの外側に抜けちゃうのが、わかると思います。
136
+
137
+
138
+
139
+ 想いでなく、文法に沿ってインデントを確認すると、構造がおかしいことに気づくはずです。
140
+
141
+ ※繰り返しですが、eclipseにはフォーマット機能あるので、それ使う方が楽です。
142
+
143
+
144
+
145
+ ```java
146
+
147
+ try {
148
+
149
+ for (int i = 0; i < 3; i++) {
150
+
151
+ line = reader.readLine();//ここでキーボード入力を行えるようにする?
152
+
153
+ System.out.println("line=" + a + ", " + b + ", " + c);//上で入力した数字をa,b,cとして認識させたい。
154
+
155
+ }
156
+
157
+ } catch (NumberFormatException | IOException e) {
158
+
159
+ // ここに来た場合、for文の外側なので try again と表示するだけで、次の処理へいく
160
+
161
+ System.out.println("Could you enter the number?");
162
+
163
+ System.out.println("Please try again!");
164
+
165
+ }
166
+
167
+ ```