자바 코딩
메서드 구현 Coding 연습2
by akasha.park
2023. 3. 15.
Quiz5>
3명 학생의 3과목 점수를 입력받아 각 과목별 학생별 총점을 출력하는 메서드를 정의하고 실행하시오.
(입력받은 3명 학생의 3과목 점수를 배열로 메서드에 전달해서 각 과목별 학생별 총점을 출력하는 메서드를 정의)
입력 예>
50 80 100
96 88 66
100 85 90
출력 예>
50 80 100 230
96 88 66 250
100 85 90 275
246 253 256 755
package lab.java.basic;
import java.util.Scanner;
public class Quiz5 {
public void subjectTotal(int[][] subjects) {
int[] subjectTotal = new int[3];//과목별 총합 저장할 배열
for(int i=0;i<subjects.length;i++) {
int total = 0; //학생의 과목 총점
for(int j=0;j<subjects[i].length;j++) {
total+=subjects[i][j];
subjectTotal[j] +=subjects[i][j];
System.out.print(subjects[i][j]+" ");
}
System.out.println(total );
}
int allTotal = 0; //3명의 학생의 모든 과목의 총합을 저장할 변수
for(int i=0;i<subjectTotal.length;i++) {
allTotal += subjectTotal[i];
System.out.print(subjectTotal[i] +" ");
}
System.out.print(allTotal +"\n");
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("과목별 점수 입력>>");
int[][] subjects = new int[3][3];
for(int i=0;i<subjects.length;i++) {
for(int j=0;j<subjects[i].length;j++) {
subjects[i][j] = input.nextInt();
}
}
Quiz5 q = new Quiz5();
q.subjectTotal(subjects);
}
}
#재귀호출 : 함수 내부에서 자신을 호출
반드시 재귀호출 중단 조건문 정의
Quiz1> 반복문을 사용하지 않고 자신의 이름을 10번 출력하는 재귀호출 메서드 구현 및 실행
package lab.java.basic;
public class Quiz1 {
public void print(int n) {
if(n==0) return;
System.out.println("korea");
print(n-1);
}
public static void main(String[] args) {
Quiz1 q = new Quiz1();
q.print(10);
}
}
Quiz2>50 이하의 자연수 N을 입력받아 재귀함수를 이용하여 1부터 N까지의 정수를 차례대로 출력하는 재귀호출 메서드 구현 및 실행
package lab.java.basic;
import java.util.Scanner;
public class Quiz2 {
public void print(int n, int start) {
System.out.print((start) +" ");
if (n==start) {
return;
}
else {
print(n, ++start);
}
}
public static void main(String[] args) {
Quiz2 q = new Quiz2();
Scanner input = new Scanner(System.in);
System.out.println("50이하의 자연수 입력>>");
int n = input.nextInt();
q.print(n, 1);
}
}
Quiz3> 9자리 이하의 자연수를 입력받아 재귀함수를 이용하여 각 자리 숫자들의 합을 출력하는 재귀호출 메서드 구현 및 실행
입력 예>123456780
출력 예> 36
package lab.java.basic;
import java.util.Scanner;
public class Quiz3 {
int total = 0;
public int accumulate(int num) {
if (Integer.toString(num).length() == 1) {
total += num;
return total;
} else {
int temp = num % 10;
total += temp;
return accumulate(num / 10);
}
}
public static void main(String[] args) {
Quiz3 q = new Quiz3();
Scanner input = new Scanner(System.in);
System.out.println("9자리 이하의 자연수 입력>>");
int num = input.nextInt();
System.out.println(q.accumulate(num));
}
}