27일차 java 연산(2023-01-31)

권단비·2023년 1월 31일
0

IT

목록 보기
50/139
[계산]
import java.util.Scanner;
class Grade {
	public int kor, eng, math;

	public Grade(int kor, int eng, int math) {
		this.kor = kor;
		this.eng = eng;
		this.math = math;
	}

	public int getSum() {
		return (kor + eng + math);
	}

	public double getAvg() {
		return (kor + eng + math) / 3.0;
	}

	public char getGrade() {
		char grade = '가';
		if (getAvg() >= 90) {
			grade = '수';
		} else if (getAvg() >= 80) {
			grade = '우';
		} else if (getAvg() >= 70) {
			grade = '미';
		} else if (getAvg() >= 60) {
			grade = '양';
		} else {
			grade = '가';
		}
		return grade;
	}
}
public class Test30 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		boolean run = true;
		while (run) {
			System.out.print("국어:");
			int kor = sc.nextInt();
			System.out.print("영어:");
			int eng = sc.nextInt();
			System.out.print("수학:");
			int math = sc.nextInt();

			Grade grade = new Grade(kor, eng, math);

			System.out.println("총점 : " + grade.getSum());
			System.out.println("평균 : " + grade.getAvg());
			System.out.println("성적 : " + grade.getGrade() + "입니다.");
			System.out.println("계속 하시겠습니까? y / n");
			String yOrn = sc.next();

			if (yOrn.equals("y") || (yOrn.equals("Y"))) {
				continue;
			} else {
				break;
			}
		}
		System.out.println("동작정지");
	}
}
[결과값]
국어:80 >> 입력한 값
영어:80 >> 입력한 값
수학:80 >> 입력한 값
총점 : 240
평균 : 80.0
성적 : 우입니다.
계속 하시겠습니까? y / n
y >> 입력한 값
국어:

[1차원 배열]

1차원 배열 : 타입이 같은 둘 이상의 데이터를 저장할 수 있는 1차원 구조의 메모리 공간
int[] ref = new int[5]; // 길이가 5인 int형 1차원 배열의 생성문

⇒String a = new a(); 처럼 생성자가 오는게 아닌 int[]이 온다.
int가 들어갈 수 있는 방을 연속으로 5개 잡음(1000번지~1020번지 연속!)
・변수 선언 : 데이터 타입 + 변수명
・배열 선언 : 데이터 타입[] + 변수명
・int[] : 정수형(x) 참조형(o)
  ⇒읽는 방법 : int호치키스(int배열형)
[계산]
public class Arrangement {
	public static void main(String[] args) {
		// 길이가 5인 int형 1차원 배열의 생성
		int[] ar1 = new int[5];

		// 길이가 7인 double형 1차원 배열의 생성
		double[] ar2 = new double[7];

		// 배열의 참조변수와 인스턴스 생성 분리
		float[] ar3;
		ar3 = new float[9];

		// 배열의 인스턴스 변수 접근
		System.out.println("배열 ar1 길이: " + ar1.length);
		System.out.println("배열 ar2 길이: " + ar2.length);
		System.out.println("배열 ar3 길이: " + ar3.length);
	}
}
[결과값]
배열 ar1 길이: 5
배열 ar2 길이: 7
배열 ar3 길이: 9

[배열의 활용]

int[] ar = new int[3];
ar[0] = 7; // 값의 저장: 첫 번째 요소
ar[1] = 8; // 값의 저장: 두 번째 요소
ar[2] = 9; // 값의 저장: 세 번째 요소
1000번지1004번지1008번지
789
[계산]
import java.util.Scanner;
class Grade {
	final int SUB_MAX = 3;
	private int[] subsArr;

	public Grade(int kor, int eng, int math) {
		subsArr = new int[SUB_MAX];
		this.subsArr[0] = kor;
		this.subsArr[1] = eng;
		this.subsArr[2] = math;
	}

	public double getSum() {
		return (subsArr[0] + subsArr[1] + subsArr[2]);
	}

	public double getAvg() {
		return (subsArr[0] + subsArr[1] + subsArr[2]) / 3.0;
	}

	public char getGrade() {
		char grade = '가';
		if (getAvg() >= 90) {
			grade = '수';
		} else if (getAvg() >= 80) {
			grade = '우';
		} else if (getAvg() >= 70) {
			grade = '미';
		} else if (getAvg() >= 60) {
			grade = '양';
		} else {
			grade = '가';
		}
		return grade;
	}
}
public class Test30 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		boolean run = true;
		while (run) {
			System.out.print("국어:");
			int kor = sc.nextInt();
			System.out.print("영어:");
			int eng = sc.nextInt();
			System.out.print("수학:");
			int math = sc.nextInt();

			Grade grade = new Grade(kor, eng, math);

			System.out.println("총점 : " + grade.getSum());
			System.out.println("평균 : " + grade.getAvg());
			System.out.println("성적 : " + grade.getGrade() + "입니다.");
			System.out.println("계속 하시겠습니까? y / n");
			String yOrn = sc.next();

			if (yOrn.equals("y") || (yOrn.equals("Y"))) {
				continue;
			} else {
				break;
			}
		}
		System.out.println("동작정지");
	}
}
[결과값]
국어:10
영어:10
수학:10
총점 : 30.0
평균 : 10.0
성적 : 가입니다.
계속 하시겠습니까? y / n
y
국어:

[계산]
public class Lotto {
	public static void main(String[] args) {
		int[] lotto = new int[6];
		for (int i = 0; i < lotto.length; i++) {
			lotto[i] = (int) (Math.random() * 45 + 1);
			for (int j = 0; j < i; j++) {
				if (lotto[i] == lotto[j]) {
					i--;
				}
			}
		}
		System.out.print("로또 번호: ");
		for (int i = 0; i < lotto.length; i++) {
			System.out.print(lotto[i] + " ");
		}
	}
}
[결과값]
로또 번호: 43 21 16 23 32 17 

0개의 댓글