자바 9일차

선장원·2021년 10월 14일

자바

목록 보기
10/24

9일차 (10/14)

오늘은 복습 2번 하고 자습시간을 많이주셨다
할게 없다.

복습

배열 정리 알고리즘

이거 머리 터지는 줄 알았다
처음으로 못함
멍청한듯 ㅠ

		// 정렬 알고리즘
		// 

		int[] num = { 3, 2, 1, 5, 4 };
		int temp = 0; // swap을 위한 중간 저장용

		for (int i = 0; i < num.length; i++) {
			for (int j = i+1; j < num.length; j++) {
				if (num[j] < num[i]) { // 비교
					temp = num[i];
					num[i] = num[j];
					num[j]=temp;

				}
			}
		}

		System.out.println(num[0]);
		System.out.println(num[1]);
		System.out.println(num[2]);
		System.out.println(num[3]);
		System.out.println(num[4]);

swap

중간에서 따로 저장을해서 숫자를 교환할 수 있게 도와주는 것을 swap라고 한다.


그림은 잘 못그리지만 이런 느낌이다

num[1]과 num[2]를 교환한다고 했을 때
num[1]을 temp로 넣고 num[2]를 num[1]로 넣고
num[2]에 temp를 넣어서 num[1]과 num[2]를 교환하는 것이다.

학생 점수 입력&분석 프로그램

		// 1. 학생수 2. 점수입력 3. 점수리스트 4.분석 5.종료
		// while + 스위치 케이스 + for + 배열 + 최댓값 + 내림차순
		Scanner scan = new Scanner(System.in);

		int num1 = 0; // 번호를 받을거야
		int student = 0; // 학생수를 받을거야
		int score = 0; // 점수를 받을거야
		int[] list = null; // 학생 리스트용인데 크기는 학생수를 받은다음 할거야
		int max = 0; // 최고점수용이야
		double sum = 0; // 합계용이야
		int temp = 0; // swap용 내림차순정리용이야
		boolean run = true; // while 용

		while (run) {
			System.out.println("------------------------------------------------");
			System.out.println("1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료");
			System.out.println("------------------------------------------------");
			System.out.print("선택 > ");
			num1 = scan.nextInt();
			switch (num1) {
			case 1: // 학생수
				System.out.print("학생수 > ");
				student = scan.nextInt();
				list = new int[student]; // 배열 크기를 학생수만큼 만들어줘
				break;
			case 2: // 점수입력 (for+배열)
				for (int i = 0; i < student; i++) {
					System.out.print((i + 1) + "번 학생 점수입력 > ");
					score = scan.nextInt();
					list[i] = score;
				}
				break;
			case 3: // 점수 리스트 (for)
				for (int i = 1; i <= student; i++) {
					System.out.println(i + "번 학생 점수 : " + list[(i - 1)]);
				}
				break;
			case 4: // 분석
				for (int i = 0; i < list.length; i++) {// 최고점수
					if (list[i] > max) {
						max = list[i];
					}
				}
				for (int i = 0; i < student; i++) {// 평균용
					sum += list[i];
				}
				System.out.println("최고점수 : " + max);
				System.out.println("평균 : " + (sum / (double) student));
				for (int i = 0; i < list.length; i++) {// 내림차순 정리
					for (int j = i + 1; j < list.length; j++) {
						if (list[i] < list[j]) {
							temp = list[i];
							list[i] = list[j];
							list[j] = temp;
						}
					}
				}
				for (int i = 0; i < list.length; i++) {
					System.out.println((i + 1) + "등 점수 : " + list[i]);
				}

				break;
			case 5: // 종료
				System.out.println("종료합니다.");
				run = false;
				break;
			default:
				System.out.print("다시 입력하세요");
				break;

			}

		}

지금까지 배운 내용들을 복합적으로 사용해서 만들었다.


우리가 배워야하는 것들
그냥 화면에 그려서 이상해 보이지만
지금까지는 배열을 배웠다가면 Array List라는 것을 배워서 그것을 DB에 저장해서
브라우저를 통해 자바를 이용해서 DB에 있는 것을 보이게 만드는 것?

그래서 오늘은 지금까지 배운 내용들을 리뷰한번 해주시고 자습시간을 많이주셨다.

내일부터는 이제 진정한 자바를 배운다고 한다.
지금까지는 자바의 기본문법을 배웠다고 한다.
내일부터 재밌겠다!!

profile
코딩도전기

0개의 댓글