๐โ ์ต๋ 10๋ช ์ ํ์์ ๋ํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ ์ ์๋ ํ๋ก๊ทธ๋จ์ด๋ค. ํด๋น ํ์์ ํ๋ , ๋ฐ, ์ด๋ฆ, ๊ตญ์ด, ์ํ, ์์ด ์ ์๋ฅผ ๊ธฐ๋กํ๊ณ ํ๊ท ์ ๊ตฌํด๋ณด์ธ์. ํด๋น ๊ตฌํ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ๊ณผ ํด๋์ค ๊ตฌ์กฐ๋ฅผ ์ฐธ๊ณ ํ์ฌ ํ๋ก์ ํธ๋ฅผ ์์ฑํ์ธ์.
๐ฉ Example Input & Output
ํ๋
: 6
๋ฐ : 1
์ด๋ฆ : ํจ์ฐ
๊ตญ์ด์ ์ : 100
์์ด์ ์ : 90
์ํ์ ์ : 95
๊ณ์ ์ถ๊ฐํ ๊ฒ๋๊น? (y/n) : y
ํ๋
: 5
๋ฐ : 3
์ด๋ฆ : ์๋ฏผ
๊ตญ์ด์ ์ : 90
์์ด์ ์ : 100
์ํ์ ์ : 85
๊ณ์ ์ถ๊ฐํ ๊ฒ๋๊น? (y/n) : y
ํ๋
: 2
๋ฐ : 7
์ด๋ฆ : ์น์ฆ
๊ตญ์ด์ ์ : 85
์์ด์ ์ : 100
์ํ์ ์ : 100
๊ณ์ ์ถ๊ฐํ ๊ฒ๋๊น? (y/n) : n
ํ๋
= 6, ๋ฐ = 1, ์ด๋ฆ = ํจ์ฐ, ๊ตญ์ด = 100, ์ํ = 95, ํ๊ท = 95
ํ๋
= 5, ๋ฐ = 3, ์ด๋ฆ = ์๋ฏผ, ๊ตญ์ด = 90, ์ํ = 85, ํ๊ท = 91
ํ๋
= 2, ๋ฐ = 7, ์ด๋ฆ = ์น์ฆ, ๊ตญ์ด = 85, ์ํ = 100, ํ๊ท = 95
์ฑ์ ์ด ๊ธฐ๋ก๋ ์ด ํ์๋ค์ ์๋ 3๋ช
์
๋๋ค.
public class StudentDTO {
/* ํ๋ */
private int grade; // ํ๋
private int classroom; // ๋ฐ
private String name; // ์ด๋ฆ
private int kor; // ๊ตญ์ด์ ์
private int eng; // ์์ด์ ์
private int math; // ์ํ์ ์
/* ์์ฑ์ */
public StudentDTO () {}
public StudentDTO(int grade, int classroom, String name, int kor, int eng, int math) {
this.grade = grade;
this.classroom = classroom;
this.name = name;
this.kor = kor;
this.eng = eng;
this.math = math;
}
/* ๋ฉ์๋ */
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getClassroom() {
return classroom;
}
public void setClassroom(int classroom) {
this.classroom = classroom;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getKor() {
return kor;
}
public void setKor(int kor) {
this.kor = kor;
}
public int getEng() {
return eng;
}
public void setEng(int eng) {
this.eng = eng;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
/* ์ถ๋ ฅ ๋ฉ์๋ */
public String getInformation() {
return "ํ๋
= " + grade + ", ๋ฐ = " + classroom + ", ์ด๋ฆ = " + name + ", ๊ตญ์ด = " + kor + ", ์ํ = " + math + ", ํ๊ท = ";
}
}
public class Application {
public static void main(String[] args) {
// ํ์ํ ๊ฐ์ฒด ์์ฑ
Scanner sc = new Scanner(System.in);
// ๊ฐ์ฒด ๋ฐฐ์ด ํ ๋น
StudentDTO[] studentsArray = new StudentDTO[10]; >>> ์
๋ ฅํ ํ์ ๋ฐฐ์ด
int[] avgArray = new int[10]; >>> ํ์ ์ฑ์ ํ๊ท ๋ฐฐ์ด
// ํ์ ์ ๋ณด๋ฅผ ์
๋ ฅ ๋ฐ์ while๋ฌธ
int studentsCount = 0; >>> ๊ธฐ๋ก๋ ์ด ํ์ ์
int i = 0;
XXX :
while(true) {
System.out.print("ํ๋
: ");
int grade = sc.nextInt();
System.out.print("๋ฐ : ");
int classroom = sc.nextInt();
sc.nextLine();
System.out.print("์ด๋ฆ : ");
String name = sc.nextLine();
System.out.print("๊ตญ์ด์ ์ : ");
int kor = sc.nextInt();
System.out.print("์์ด์ ์ : ");
int eng = sc.nextInt();
System.out.print("์ํ์ ์ : ");
int math = sc.nextInt();
// ์
๋ ฅ๋ฐ์ ๊ฐ์ ๋ฐฐ์ด์ ์ ์ฅ
studentsArray[i] = new StudentDTO(grade, classroom, name, kor, eng, math);
avgArray[i] = (kor + eng + math) / 3;
studentsCount ++;
i++;
>>> ์
๋ ฅ๋ ๊ฐ์ด studentsArray[i]์ ์ ์ฅ๋์ด๊ฐ
// ํ์์ ๊ณ์ ์ถ๊ฐํ ์ง ์ฌ๋ถ๋ฅผ ๋ฌป๋ if๋ฌธ
System.out.print("๊ณ์ ์ถ๊ฐํ ๊ฒ๋๊น? (y/n) : ");
char yesOrNo = sc.next().charAt(0);
if(yesOrNo == 'y'||yesOrNo == 'Y') {
continue XXX; >>> y/Y๊ฐ ์
๋ ฅ๋๋ฉด while๋ฌธ ๋ค์ ์์
} else {
for(int j = 0; j < i; j++) {
System.out.println(studentsArray[j].getInformation() + avgArray[j]);
}break XXX; >>> ๋ค๋ฅธ๊ฒ ์
๋ ฅ๋๋ฉด ์ถ๋ ฅ ํ while๋ฌธ ์ข
๋ฃ
}
} System.out.println("์ฑ์ ์ด ๊ธฐ๋ก๋ ์ด ํ์๋ค์ ์๋ " + studentsCount + "๋ช
์
๋๋ค.");
}
}
๐ฌ Overall Comment
* ์ด๋ฒ ๋ฌธํญ์์๋ ์ ๋ง ๋ฐฐ์ด ๊ฒ์ด ๋ง๋ค. ๊ต์ฅํ ์๊ฐ์ ๋ง์ด ์์๋ถ์์ง๋ง ์ข์ฒ๋ผ ํ๋ฆฌ์ง ์๋ ๋ถ๋ถ์ด ๋ง์๋ค.
์
๋ ฅ๋ฐ์ ํ์๋ค์ ์ ์ฅํ ๋ for๋ฌธ์ ์ฌ์ฉํ์๋๋ฐ, ์ด๋ฏธ while๋ฌธ ์์ ์ํด์์ผ๋ฏ๋ก ๊ทธ๋ด ํ์๊ฐ ์์๋ค.
๊ณต๊ฐ์ ๋ง๋ค์ด๋ studentsArray์ DTO์ ์์ฑ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ ์ ์ฅํ๋ฉด ํด๊ฒฐ๋๋ ๋ถ๋ถ์ด์๋ค.
์ด๊ฒ์ด ์์ธ์ด ๋์ด ์
๋ ฅ๋ ํ์๋ค์ ๋ฐ์ดํฐ๊ฐ ์์ด์ง ์๊ณ ๊ณ์ ๋ฎ์ด์์์ ธ ๋ง์ง๋ง์ ์
๋ ฅ๋ ํ์๋ง ์ถ๋ ฅ์ด ๋์์๋ค.
* ๋ํ, ๊ฐ ํ์๋ค์ ํ๊ท ์ ๊ตฌํ์ฌ ๋ฃ๋ ๋ถ๋ถ์์ ๋์ ํ ์์ด๋์ด๊ฐ ์์ด ์คํฐ๋ํ์๋ถ์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ๋ฃ์๋๋ฐ,
์ด๊ฒ ์ญ์ ๋ฐฐ์ด์ ์์ฑํ๊ณ studentsArray๊ฐ ์ฆ๊ฐ๋จ๊ณผ ๋์์ ํ๊ท ์ ๊ฐฏ์๋ ์ฆ๊ฐ๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ณ์ i๋ฅผ ๋ฃ์ผ๋ฉด ๋๋ ๊ฒ์ด์๋ค.
* ๊ทธ๋ฆฌ๊ณ lable์ธ XXX๋ฅผ ์ฌ์ฉํ์๋๋ฐ, ์ฌ์ฉํ ๋ ๊ธฐ์ค์ ์ ์ฌ๋ฌ๊ฐ ๋ ์๋ ์๋ค๋ ์ฌ์ค์ ๊นจ๋ฌ์๋ค.
์ ๋ง ๋ง์ด ๊ณต๋ถํ๊ณ ๋ ๋ฐฐ์์ผ๊ฒ ๋ค.
public class Application {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StudentDTO[] students = new StudentDTO[10];
int index = 0;
while(index < students.length){
System.out.print("ํ๋
: ");
int grade = sc.nextInt();
System.out.print("๋ฐ: ");
int classroom = sc.nextInt();
sc.nextLine();
System.out.print("์ด๋ฆ : ");
String name = sc.nextLine();
System.out.print("๊ตญ์ด์ ์ : ");
int kor = sc.nextInt();
System.out.print("์์ด์ ์ : ");
int eng = sc.nextInt();
System.out.print("์ํ์ ์ : ");
int math = sc.nextInt();
sc.nextLine();
students[index++] = new StudentDTO(grade, classroom, name, kor, eng, math);
System.out.print("๊ณ์ ์ถ๊ฐํ ๊ฒ๋๊น? (y/n) : ");
//char anwser = sc.nextLine().toUpperCase().charAt(0);
//if(anwser != 'Y') break;
String anwser = sc.nextLine();
if(!anwser.equalsIgnoreCase("y")) break;
}
for(int i = 0; i < index; i++) {
int sum = students[i].getKor() + students[i].getEng() + students[i].getMath();
System.out.println(students[i].getInformation() + ", ํ๊ท =" + sum/3);
}
}
}