回答編集履歴

3

説明追記

2020/01/21 10:21

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,5 +1,7 @@
1
1
  直接の回答ではないですが、私もリファクタリングしてみました。
2
2
 
3
+ オブジェクトには役割を持たせましょう。生徒役、先生役。先生が生徒に成績を伝える。平均点は生徒が計算する。
4
+
3
5
  何か参考になることがあれば幸いです。
4
6
 
5
7
 

2

コード変更

2020/01/21 10:21

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -300,34 +300,36 @@
300
300
 
301
301
 
302
302
 
303
- public boolean load(BufferedReader file) throws IOException {
303
+ public void load(BufferedReader file) throws IOException {
304
+
304
-
305
+ while (true) {
306
+
305
- String number = file.readLine();
307
+ String number = file.readLine();
306
-
308
+
307
- if (number == null) {
309
+ if (number == null) {
308
-
310
+
309
- return false;
311
+ return;
312
+
313
+ }
314
+
315
+ Student student = new Student();
316
+
317
+ student.setNumber(number);
318
+
319
+ student.setName(file.readLine());
320
+
321
+ student.setEnglish(readInt(file));
322
+
323
+ student.setLiterature(readInt(file));
324
+
325
+ student.setMathematics(readInt(file));
326
+
327
+ file.readLine(); // drop out average
328
+
329
+ students.add(student);
310
330
 
311
331
  }
312
332
 
313
- Student student = new Student();
314
-
315
- student.setNumber(number);
316
-
317
- student.setName(file.readLine());
318
-
319
- student.setEnglish(readInt(file));
320
-
321
- student.setLiterature(readInt(file));
322
-
323
- student.setMathematics(readInt(file));
324
-
325
- file.readLine(); // drop out average
326
-
327
- students.add(student);
328
-
329
- return true;
330
-
331
333
  }
332
334
 
333
335
 
@@ -338,7 +340,7 @@
338
340
 
339
341
  System.err.println(filename + "から読み込みます。");
340
342
 
341
- while (load(file));
343
+ load(file);
342
344
 
343
345
  System.out.println(students.size() + "人のデータを読み込みました。");
344
346
 

1

コード修正

2020/01/21 10:17

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -276,10 +276,6 @@
276
276
 
277
277
  ```ReadGradeFromFile.java
278
278
 
279
- //読み込み用クラス
280
-
281
-
282
-
283
279
  //package grade6;
284
280
 
285
281
  import java.io.*;
@@ -342,9 +338,7 @@
342
338
 
343
339
  System.err.println(filename + "から読み込みます。");
344
340
 
345
- for (int n = 1; load(file); n++) {
341
+ while (load(file));
346
-
347
- }
348
342
 
349
343
  System.out.println(students.size() + "人のデータを読み込みました。");
350
344