6일차 - 240103

김리오·2024년 1월 3일

학원공부 TIL

목록 보기
6/13

📌배열문 입력하는 3가지 방법

	public static void main(String[] args) {
    
		// 방법1.
		System.out.println("======방법1======");
		String[] name = new String[3];
		name[0] = "홍길동";
		name[1] = "이순신";
		name[2] = "세종대왕";
		for (int i = 0; i < name.length; i++) {
			System.out.println(name[i]);
		}

		// 방법2.
		System.out.println("======방법2======");
		String[] name2 = new String[] { "홍길동", "이순신", "세종대왕" };
		for (int i = 0; i < name2.length; i++) {
			System.out.println(name2[i]);
		}

		// 방법3.
		System.out.println("======방법3======");
		String name3[] = { "홍길동", "이순신", "세종대왕" };
		for (int i = 0; i < name3.length; i++) {
			System.out.println(name3[i]);
		}

	}

📌method 관련 개념

	//접근제어자 : 어떤 페키지에서도 접근할 수 있다   객체생성없이접근가능   반환되는 값의 자료형     메서드이름(매개변수 목록)
	   public 								    static            void             main(String[] args) {
		   int num = 50;
		   //num 변수가 갖고 있는 값을 print()안에서 출력하려면 어떻게 해야 할까?
		   print(num);	//메서드의 괄호안에 값을 넣어준다
		   				//메서드를 정의한 곳에서 num 값을 저장하기 위한 변수를 선언해 주어야 함
		   				//호출하는 메서드에서 사용한 num의 값을 인자라고 하며
		   				//메서드 정의에 사용된 parameter를 매개변수라고 한다
	   }

	//메서드 정의
	   public static void print(int parameter) { //자바에서 값을 받으려면 자료형을 명시해야 함
		   System.out.println("print() 메서드 입니다.");
		   System.out.println("main() 메서드에서 전달받은 데이터의 값은 " + parameter + "입니다.");
		   
	   }

📌method 활용한 값을 출력하는 방법

  • 반환되는 값(return 값)의 자료형이 정해져 있는 경우, 메서드의 반환형과 반드시 일치해야 한다
	public static int add (int num1, int num2) {
		int sum = num1 + num2;
		return sum;
	}
    
	public static void main(String[] args) {
	
	add(3, 4);
	
	//방법1 : 변수에 대입 후 출력
	int result = add(3,4);
	System.out.println(result);
	
	//방법2 : 출력문 입력
	System.out.println(add(3,4));
		
	}

📌과목별/학생별 총점 구하기

	public static void main(String[] args) {
		String name[] = { "강호동", "이승기", "유재석", "하하", "이광수" };
		String sub_name[] = { "국어", "수학", "영어" };

		int[][] score = {
				{ 85, 60, 70 }, // 0행(1번학생)
				{ 90, 95, 80 }, // 1행(2번학생)
				{ 75, 80, 100 }, // 2행(3번학생)
				{ 80, 70, 95 }, // 3행(4번학생)
				{ 100, 65, 80 } // 4행(5번학생)
		};
		
		int[] subject = new int[3]; // 과목총점 저장
		int[] student = new int[5]; // 학생의 총점 저장
	
	
	System.out.println("===각 과목별 총점 구하기===");
//	//국어과목 총점
//	subject[0] = score[0][0] + score[1][0]+score[2][0]+score[3][0]+score[4][0];
//	//수학과목 총점
//	subject[1] = score[0][1] + score[1][1]+score[2][1]+score[3][1]+score[4][1];
//	//영어과목 총점
//	subject[2] = score[0][2] + score[1][2]+score[2][2]+score[3][2]+score[4][2];
//	
//	for (int i=0; i<subject.length; i++) {
//		System.out.println(sub_name[i]+"의 총점 = "+subject[i]);
//	}
	
	for (int i=0; i<3; i++) {
		for (int j=0; j<5; j++) {
			subject[i] += score[j][i];
			//subject[j] = subject[j] + score[i][j]

		}
		System.out.println(sub_name[i]+"의 총점 = "+subject[i]);


	}

//굳이 아래 명령문을 따로 써 줄 필요가 없음. 학생별로 총점 구하고 바로 출력하는 논리로 생각했어야 함	
//	for (int i=0; i<subject.length; i++) {
//		System.out.println(sub_name[i]+"의 총점 = "+subject[i]);
	
	
	System.out.println("===학생별 총점구하기===");
	
	for(int n=0; n<score.length; n++) {
		for (int m=0; m<score[n].length; m++) {
			student[n] += score[n][m];
				
		}
	System.out.println(name[n]+"의 총점 = "+student[n]);
	
	}

	//굳이 아래 명령문을 따로 써 줄 필요가 없음. 학생별로 총점 구하고 바로 출력하는 논리로 생각했어야 함
//	for (int o=0; o<score.length; o++) {
//		System.out.println(name[o]+"의 총점 = "+student[o]);
	}

📌method 2개를 활용한 절댓값 구하는 문제

/*
1. input()
	기능 : 정수를 입력 받는 메서드
	반환형 : 입력 받은 정수형을 리턴한다.

2. abs(int data)
	기능 : 절대값 구하기
	매개변수 : 정수형 한 개
	반환형 : 매개변수로 입력받은 정수형 값을 절대값으로 구한 뒤 리턴

출력결과)
정수를 입력 하세요? -3
절대값 : 3
 */
package ex06_3_method_intro3_return;

import java.util.Scanner;

public class MethodExample2_abs_input {

	public static int input() { // 매개변수가 필요할까?
		Scanner sc = new Scanner(System.in);
		System.out.print("정수를 입력 하세요?");
		int value = sc.nextInt();
		sc.close();

		return value;
	}

	public static int abs(int data) {
		if (data >= 0) {
		} else {
			data = (-(data));
		}
		return data;
	}

	public static void main(String[] args) {
		int inputdata = input();
		// 1. input method를 호출해서 정수를 입력 받고, 변수 inputdata에 대입
		int result = abs(inputdata);
		// 2. 1에서 입력받은 정수를 abs 매서드의 매개변수로 활용하여 결과값 출력
		// int reuslt = abs((input());
		System.out.println("절대값 :" + result);
	}
}

📌최댓값/최솟값 출력하는 문제(method 활용)

/*
 1. 최댓값을 구하는 메서드는 max
 2. 최솟값을 구하는 메서드는 min
 3. 두 메서드 모두 반환형은 int, 매개변수는 모두 정수형 2개
 4. main()에서 아래와 같은 작업을 진행
 	(1) 2개의 값을 입력받는다
 	(2) 두 개의 값을 인자로 max(), min()을 호출한다
 	(3) 호출 후 리턴된 값을 아래와 같이 출력되도록 한다
 		출력결과)
 				두 개의 정수를 입력하세요?10 20
 				max = 20
 				min = 10
 */
 
 import java.util.Scanner;

public class MethodExample3_max_min_3 {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("두 개의 정수를 입력 하세요?");
		int value1 = sc.nextInt();
		int value2 = sc.nextInt();
		sc.close();
		
		int max2 = max(value1, value2);
		int min2 = min(value1, value2);
		
		//max2는 변수, max(value1, value2)의 max는 메소드 명칭
		System.out.println("max = "+max2);
		System.out.println("min = "+min2);
		
	}	
	
	public static int max(int a, int b) {
		return a>b?a:b;
		
	}
	
	public static int min(int a, int b) {
		return a<b?a:b;
		
	}

📌과제 : 표채우기 (점수, 총점 등)

	public static void main(String[] args) {
		String name[] = { "강호동", "이승기", "유재석", "하하", "이광수" };
		String sub_name[] = { "국어", "수학", "영어" };

		int[][] score = { { 85, 60, 70 }, // 0행(1번학생)
				{ 90, 95, 80 }, // 1행(2번학생)
				{ 75, 80, 100 }, // 2행(3번학생)
				{ 80, 70, 95 }, // 3행(4번학생)
				{ 100, 65, 80 } // 4행(5번학생)
		};

		int[] subject = new int[3]; // 과목총점 저장
		int[] student = new int[5]; // 학생의 총점 저장

		System.out.println("=========== 학생별  /  과목별 총점구하기 ===========");

		String[] R2 = { "국어", "수학", "영어", "총점", "평균" };
		for (int i = -1; i < R2.length; i++) {
			if (i < 0) {
				System.out.printf("%7s", "");
			} else {
				System.out.printf("%-8s", R2[i]);
			}
		}

		System.out.println();

		///////////////////// 학생의 총점//////////////////////
		for (int i = 0; i < score.length; i++) {
			for (int j = 0; j < score[i].length; j++)
				student[i] += score[i][j];
		}

		//////////////////// 표 채우기////////////////////////
		for (int i = 0; i < name.length; i++) {
			if (i != 3) {
				System.out.printf("%-6s", name[i]);
			} else {
				System.out.printf("%-6s ", name[i]);
			}

			for (int j = 0; j < score[i].length; j++) {
				System.out.printf("%-9s", score[i][j]);
			}

			System.out.printf("%-9s %-9s%n", student[i], student[i] / 3);

		}

		////////////////// 과목 총점 채우기 //////////////////////
		System.out.println("=================================================");
		System.out.printf("%-6s ", "총점");

		////////////////// 과목 총점 /////////////////////////
		for (int i = 0; i < 3; i++) {
			for (int j = 0; j < 5; j++) {
				subject[i] += score[j][i];
			}
		}

		for (int i = 0; i < subject.length; i++) {
			System.out.printf("%-9s", subject[i]);
		}
	}
profile
생각하는 사람이 되고 싶다

0개의 댓글