Javaの質問です。こちらにサンプルコード
https://gist.github.com/AuroraNorthernQuarter/d7581504171559e521183af86719d1a9
がありまして、問題なく動いてはいるのですが。
コードをスッキリさせたいと考えております。
for文の二重ループ?というんでしょうか。この部分だけ、新たなクラスとして別のjavaファイルに持っていきまして。
本体(Sampleクラス)から、呼び出すような形にして、同時に、二重ではなくスッキリ見せたいのですが。
方法等ありましたらお教えいただけないでしょうか。
よろしくお願い致します。
こちらは参考になるでしょうか。
package testprogramm; import java.util.Scanner; class Person { private String name = ""; private double height = 0.0; //--- コンストラクタ ---// Person() { } Person(String name, double height) { set(name, height); } //--- 取得 ---// String getName() { return name; } double getHeight() { return height; } //--- 設定 ---// void setName(String name) { this.name = name; } void setHeight(double height) { this.height = height; } void set(String name, double height){ this.name = name; this.height = height; } //--- 文字列表現を返却 ---// public String toStr(){ return name + ":"+ height + "cm"; } public String toStr(int n){ if (n==0) return name; else return height + "cm"; } } public class Sample { static void Disp(Person[] p){ int n = p.length; double sum = 0; for (int i = 0; i < n*n; i++){ int m = (i%n==0)? i/n : i%n; if (0< i%n && i%n<=i/n) m-=1; System.out.println(p[m].toStr(i%n)); } for (int i = 0; i< n; i++) sum = sum + p[i].getHeight(); System.out.println("平均:" + sum/n+ "cm"); } public static void main(String args[]) { Scanner scan = new Scanner(System.in); while (true) { System.out.print("得点を入力してください: "); // キーボードから整数の入力を受け取る int score = scan.nextInt(); if (score > 90) { System.out.println("おめでとう! 合格です"); Person[] p = { new Person("鈴木", 168.7), new Person("杉山", 173.4), new Person("田中", 155.8), }; Disp(p); break; } else if (score >= 60) { System.out.println("もう少し頑張りましょう。"); Person[] p = { new Person("橋本", 166.3), new Person("高杉", 159.1), new Person("佐藤", 177.4), }; Disp(p); break; } else if (score < 0) { break; } } scan.close(); } }
Person.javaは長くなっても構いませんので、よろしくお願いします。
2018/11/03 14:11:58それなら、Person.javaはそのままで、Persons.javaを追加して、Sample.javaをそれに伴って修正してみます。(^_^;
プログラムは、次のPerson.java、Persons.java、Sample.javaの3つから成ります。
● Person.java
上記と同じなので省略。
● Persons.java
● Sample.java
2018/11/04 06:29:07