배운 책들 정리/자바 완전 정복

자바의 정석 4,5 - 조건문,반복문,배열 2

구빅 2023. 5. 13. 01:08

1 팁

1. 팁

 

 

 

2 복습

1. 성적처리프로그램

 

 

import java.util.Iterator;
import java.util.Scanner;

public class C0512_02 {
	// 10개의 숫자를 입력받아 합계를 출력하시오.
	public static void main(String[] args) {
//		국어,영어,수학 합계 평균 출력
		// 1. 성적 입력
		// 2. 성적 출력
		// 3. 성적 수정
		// 4. 등수처리
		// 5. 학생검색
		// 0. 프로그램종료

		Scanner scan = new Scanner(System.in);
		// 이름,국영수,합계,평균 - 10명
		int input = 0, count = 0;
		String[] name = new String[2];
		int[] kor = new int[2];
		int[] eng = new int[2];
		int[] math = new int[2];
		int[] total = new int[2];
		double[] avg = new double[2];

		while (true) {

			// 화면출력
			System.out.println("[성적처리프로그램]");
			System.out.println("1. 입력");
			System.out.println("2. 출력");
			System.out.println("3. 수정");
			System.out.println("4. 종료");

			System.out.println("원하는번호를 입력하세요");
			input = scan.nextInt();
			if (input == 0)

			{
				System.out.println("종료합니다.");
				break;
			}

			// 3 조건문
			switch (input) {

			case 1:

				// 학생 수 만큼 반복
				for (int i = count; i < name.length; i++) {

					System.out.println((count+1)+"번째 이름을 입력하세요 \n(0을 누르면 종료합니다.)");
					name[i] = scan.next();
					if (name[i].equals("0")) {
						System.out.println("종료합니다.");
						break;
					}
					System.out.println("국어 성적 입력하세요");
					kor[i] = scan.nextInt();
					System.out.println("영어 성적 입력하세요");
					eng[i] = scan.nextInt();
					System.out.println("수학 성적 입력하세요");
					math[i] = scan.nextInt();

					// 자동 성적
					total[i] = kor[i] + eng[i] + math[i];
					avg[i] = total[i] / 3.0;
					count++; // 1이라는 학생부터 입력함 // 나왔다 들어갔다가
				}
				break;

			case 2:
				System.out.println("이름\t 국어 \t 영어\t 수학 \t 합계 \t 평균");
				System.out.println("----------------------------------");
				for (int i = 0; i < count; i++) {
					System.out.printf("%s\t%d\t%d\t%d\t%d\t%.2f \n", name[i], kor[i], eng[i], math[i], total[i],
							avg[i]);

				}
			case 3:
				while (true) {

				}

			}
		}
	}
}

 

 

3 이론

1. 배열의 활용 - 예제1

 

 

2. 다차원 배열

 

 

 

 

 

4 실습

1. 로또 1

lotto[i] = i+1; //1,2,3,

import java.util.Iterator;
import java.util.Scanner;

public class C0512_03 {
	// 10개의 숫자를 입력받아 합계를 출력하시오.
	public static void main(String[] args) {
		// 로또 프로그램
		// 1. 배열 생성
		int[] lotto = new int[45];

		// 랜덤 반복
		for (int i = 0; i < lotto.length; i++) {
//			lotto[i] = i+1; //1,2,3,
			lotto[i] = (int) (Math.random() * 45) + 1;

		}

		for (int i = 0; i < lotto.length; i++) {
			System.out.println(lotto[i]);
		}

	}
}

 

2. 로또 2

 

import java.util.Iterator;
import java.util.Scanner;

public class C0512_03 {
	
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		// 로또 프로그램
		// 1. 배열 생성
		int random = 0, // 랜덤번호
				count = 0, // 당첨번호
				temp = 0; // 임시 저장 변수
		int[] lotto = new int[45]; // 입력번호
		int[] lottoNum = new int[6]; // 당첨번호
		int[] Mynum = new int[6]; // 로또번호

		// 2. 로또 번호 생성
		for (int i = 0; i < lotto.length; i++) {
			lotto[i] = i + 1; // 1,2,3...45
//			lotto[i] = (int) (Math.random() * 45) + 1;

		}

		// 2-2. 로또번호 입력
		for (int i = 0; i < 6; i++) {
			System.out.println((i + 1) + "번째 로또번호를 입력하세요. 1~45까지");
			Mynum[i] = scan.nextInt();

			// 같은 번호일 경우 다시 돌아가게 // 반복
			for (int j = 0; Mynum[i] >= 45; j++) {

				System.out.println("다른 번호입니다. 1~45에서 입력해주세요\n");
				i--; // 다시 입력받기 위해 i 값을 감소시킵니다.
				break;

			} // for문 1

			// 같은 번호일 경우 다시 돌아가게 // 반복
			for (int j = 0; j < i; j++) {
				if (Mynum[i] == Mynum[j]) { // 배열은 1==0 구조라 이건 같다라는걸 의미함.
					System.out.println("같은 번호입니다. 다시 입력하세요\n");
					i--; // 다시 입력받기 위해 i 값을 감소시킵니다.
					break;
				}
			}


		} // 입력 for문

		// 3. 번호 섞기 1000번
		for (int i = 0; i < 1000; i++) {
			random = (int) (Math.random() * 45); // 0-44 랜덤번호
			temp = lotto[0];
			lotto[0] = lotto[random];
			lotto[random] = temp;
		}
//		System.out.println(lotto[5]);

		// 4. 로또번호 출력
		System.out.println("\n\n로또번호 자동생성 : ");
		for (int i = 0; i < 6; i++) {
			System.out.print(lotto[i]);
			if (i != 5) {
				System.out.print(",");
			}

		}

//		5.로또번호 확인
		for (int i = 0; i < 6; i++) { // lotto배열
			for (int j = 0; j < 6; j++) {
				if (lotto[i] == Mynum[j]) {
					lottoNum[count] = lotto[i]; // 당첨번호 넣기
					count++; // 당첨개수 증가
					continue; // 계속 이어가라

				}
			}
		}

		// 6. 입력 번호 출력
		System.out.println("\n\n입력번호 : ");
		for (int i = 0; i < 6; i++) {
			System.out.print(Mynum[i] + " ");
		}

		// 7. 당첨 번호 출력
		System.out.print("\n\n당첨번호 : ");
		for (int i = 0; i < count; i++) {

//			// 같은번호는 1개만 나오게
//			if (lottoNum[i] == i]) {
			System.out.print(lottoNum[i] + " ");
//			}

		}

//		for (int i = 0; i < lotto.length; i++) {
//			System.out.println(lotto[i]);
//		}

//당첨개수
		System.out.println("\n\n당첨 개수 : " + count);
	}
}

 

3. 로또 3 (입력번호 확인 // 같은 번호 반복 못하게)

 

 

import java.util.Iterator;
import java.util.Scanner;

public class C0512_03 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		// 로또 프로그램
		// 1. 배열 생성
		int L = 6; // 로또 번호 개수
		int random = 0, // 랜덤번호
				count = 0, // 당첨번호
				temp = 0; // 임시 저장 변수
		int[] lotto = new int[45]; // 입력번호
		int[] lottoNum = new int[L]; // 당첨번호
		int[] Mynum = new int[L]; // 로또번호
		String inputString = "";

		// 2. 로또 번호 생성
		for (int i = 0; i < lotto.length; i++) {
			lotto[i] = i + 1; // 1,2,3...45
//			lotto[i] = (int) (Math.random() * 45) + 1;

		}

		// 3. 번호 섞기 1000번
		for (int i = 0; i < 10; i++) {
			random = (int) (Math.random() * 45); // 0-44 랜덤번호
			temp = lotto[0];
			lotto[0] = lotto[random];
			lotto[random] = temp;
		}

		// 4. 로또번호 입력
		for (int i = 0; i < 6; i++) {
			System.out.println("\n" + (i + 1) + "번째 로또번호를 입력하세요. 1~45까지");
			Mynum[i] = scan.nextInt();

			// 같은 번호일 경우 다시 돌아가게 // 반복
			for (int j = 0; Mynum[i] >= 45; j++) {

				System.out.println("다른 번호입니다. 1~45에서 입력해주세요\n");
				i--; // 다시 입력받기 위해 i 값을 감소시킵니다.
				break;

			} // for문 1

			// 같은 번호일 경우 다시 돌아가게 // 반복
			for (int j = 0; j < i; j++) {
				if (Mynum[i] == Mynum[j]) { // 배열은 1==0 구조라 이건 같다라는걸 의미함.
					System.out.println("같은 번호입니다. 다시 입력하세요\n");
					i--; // 다시 입력받기 위해 i 값을 감소시킵니다.
					break;
				}
			} // for문
			System.out.print("현재까지 입력한 번호: ");
			for (int j = 0; j <= i; j++) {
				if (j == i) { // 마지막 (같아지는 부분)
					System.out.print(Mynum[j]);
				} else { // 처음 부분
					System.out.print(Mynum[j] + ", ");

				}

			}

//2트
//			System.out.println("현재까지 입력한 번호: ");
//			if (Mynum[i]==Mynum[i]) {
//				System.out.println(inputString += Mynum[i] + ",");
//				
//			}
//			else if (Mynum[i]==Mynum[i]) {
//				System.out.println("");
//				
//			}

//	        for (int j = 0; j < Mynum.length; j++) {
//            System.out.print((j + 1) + "번째 번호를 입력하세요: ");
//            Mynum[j] = scan.nextInt(); // 정수형으로 입력받아 배열에 저장
//            inputString += Mynum[j]; // 입력한 값을 문자열에 추가
//            if (j != Mynum.length - 1) {
//                inputString += ","; // 마지막 입력값은 쉼표를 추가하지 않음
//            }
//            System.out.println("현재까지 입력한 번호: " + inputString); // 입력한 값을 출력
//        }

		} // 입력 for문

//		System.out.println(lotto[5]);

		// 5. 로또번호 출력
		System.out.print("\n\n로또번호 자동생성 : ");
		for (int i = 0; i < L; i++) {
			System.out.print(lotto[i]);
			if (i != 5) {
				System.out.print(",");
			}

		}

//		6.로또번호 확인
		for (int i = 0; i < L; i++) { // lotto배열
			for (int j = 0; j < L; j++) {
				if (lotto[i] == Mynum[j]) {
					lottoNum[count] = lotto[i]; // 당첨번호 넣기
					count++; // 당첨개수 증가
					continue; // 계속 이어가라

				}
			}
		}

		// 7. 입력 번호 출력
		System.out.print("\n\n입력번호 : ");
		for (int i = 0; i < 6; i++) {
			System.out.print(Mynum[i] + " ");
		}

		// 8. 당첨 번호 출력
		System.out.print("\n\n당첨번호 : ");
		for (int i = 0; i < count; i++) {

//			// 같은번호는 1개만 나오게
//			if (lottoNum[i] == i]) {
			System.out.print(lottoNum[i] + " ");
//			}

		}

//		for (int i = 0; i < lotto.length; i++) {
//			System.out.println(lotto[i]);
//		}

//당첨개수
		System.out.println("\n\n당첨 개수 : " + count);
	}
}

 

4. 진수 변환 출력 - 바이너리 1

 

import java.util.Scanner;

public class C0512_05 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		// 10진수를 2진수로 변경하는 프로그램

		// 2진수를 저장할 배열
		String[] binary = { 
			"0000", "0001", "0010", "0011", 
			"0100", "0110", "0101", "0111", 
			"1000", "1001" 
		};

		// 10진수를 저장할 배열
		int[] num = new int[4];

		
//		1번 for문
		// 10진수 입력 받기
		// num[0] = 1, num[1] = 0, num[2] = 2, num[3] = 5
		for (int i = 0; i < num.length; i++) {
			System.out.println("번호를 입력하세요.");
			num[i] = scan.nextInt();
		}

		
//		2번 for문
		// 2진수로 변환하여 출력
		System.out.println("이진코드 : ");
		// num[0]부터 num[3]까지 순서대로 접근
		for (int i = 0; i < num.length; i++) {
			// num[i]에 해당하는 2진수 값을 배열 binary에서 찾아 출력
			System.out.print(binary[num[i]] + " ");
		}
		System.out.println();

		
//		3번 for문
		// 10진수로 출력
		System.out.println("10진코드 : ");
		// num[0]부터 num[3]까지 순서대로 접근
		for (int i = 0; i < num.length; i++) {
			// num[i]를 그대로 출력
			System.out.print(num[i] + " ");
		}
		System.out.println();
	}
}

 

5. 진수 변환 출력 - 바이너리 2 (확인 과정)

 

개인적으로 확인해본 것
교수님 코드

import java.util.Scanner;

public class C0512_06 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		// 1차원배열
//		int[] num = new int[3];
//		for(int i=0;i<num.length;i++) {
//			System.out.println("점수를 입력하세요.");
//			num[i] = scan.nextInt();
//		}
//		
//		for(int i=0;i<num.length;i++) {
//			System.out.println(num[i]);
//		}

		// 2차원 배열
		int[][] score = new int[3][4];
		// 입력
		for (int i = 0; i < score.length; i++) {
			//

			for (int j = 0; j < score[i].length; j++) {
				System.out.println("2차원 점수를 입력하세요.");
				score[i][j] = scan.nextInt();
			}
		}

		// 출력
		for (int i = 0; i < score.length; i++) {
			for (int j = 0; j < score[i].length; j++) {
				System.out.print(score[i][j] + "\t");
			}
			System.out.println();
		}
	}

}

//	public static void main(String[] args) {
//		Scanner scan = new Scanner(System.in);
//		// 10진수를 2진수로 변경하는 프로그램
//
//		// 1. 숫자입력
//		int[] num = new int[10];
//		// 0 1 2 3 4 5 6 7 8 9
//		String[] data = { "0", "10", "20", "30", "40", "50", "60", "70", "80", "90" };
//
//		for (int i = 0; i < data.length; i++) {
//			System.out.println("10진수를 입력하세요"); // 5
//			num[i] = scan.nextInt();
////			System.out.println(data[i]);
//
//		}
//
//		// 2. 2진코드 출력
//		for (int i = 0; i < data.length; i++) {
//			System.out.println("num[i] : " + num[i]);
//			System.out.println("data[i] : " + data[i]);
//			
//
//		}
//
//	}
//}

 

6. 진수 변환 출력 - 바이너리 3 (확인 과정)

 

 

import java.util.Iterator;
import java.util.Scanner;

public class C0512_07 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int[] num = new int[3];
		int[][] score = new int[3][4];

//		배열 개수만큼 포문 사용

		//입력 1차원
		for (int i = 0; i < num.length; i++) {
			System.out.println("점수를 입력하세요."); // 3번 입력
			num[i] = scan.nextInt();
		}

		//입력 2차원		
		for (int i = 0; i < num.length; i++) {
			for (int j = 0; j < score[i].length; j++) {
				System.out.println("2차원 점수를 입력하세요."); // 12번 입력
				score[i][j] = scan.nextInt();
			}
		}
		
		
		//출력 1차원
		for (int i = 0; i < num.length; i++) {
			System.out.println(num[i]);  
		}

		//출력 2차원
		for (int i = 0; i < num.length; i++) {
			for (int j = 0; j < score[i].length; j++) {
				System.out.print(score[i][j] + " ");
			}
			System.out.println(" ");
		}

	}
}

 

7. 단순 for문 사용법 & Array 사용법 (정렬)

 

Arrays.sort(arr) 사용 시

 

//import java.util.Arrays;
//import java.util.Collection;
//import java.util.Collections;
//import java.util.Iterator;
import java.util.Arrays;
import java.util.Scanner;

public class C0512_11 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int[] arr = { 1, 11, 23, 45, 2, 3, 9, 5 };
//		integer = 객체 타입
		Arrays.sort(arr); // 오름차순 정렬
//		Arrays.sort(arr,Collections.reverseOrder()); // 내림차순정렬
		int num = 10;
		
		// 단순 for문
		for (int i : arr) {
			System.out.println(i + " ");
		}
		
//		//기본 for문
//		for (int i = 0; i < arr.length; i++) {
//			
//		}
		
	}
}

 

5 문제풀이

1. 성적 출력 1

 

import java.util.Iterator;
import java.util.Scanner;

public class C0512_01 {
	// 10개의 숫자를 입력받아 합계를 출력하시오.
	public static void main(String[] args) {
//		국어,영어,수학 합계 평균 출력
		// 1. 성적 입력
		// 2. 성적 출력
		// 3. 성적 수정
		// 4. 등수처리
		// 5. 학생검색
		// 0. 프로그램종료

		Scanner scan = new Scanner(System.in);
//변수 선언		
		int count = 0, sum = 0, input = 0;
		String[] name = new String[2];
		int[] kor = new int[2];
		int[] eng = new int[2];
		int[] math = new int[2];
		int[] total = new int[2];
		double[] avg = new double[2];

// 로비 화면 구성		
		while (true) {
			System.out.println("1.값 입력 ");
			System.out.println("2.값 출력 ");
			System.out.println("0. 종료 ");
			input = scan.nextInt();

// 종료합니다.
			if (input == 0) {
				System.out.println("종료합니다.");
				break;
			}

// 스위치			
			switch (input) {
// 입력			
			case 1:
//				for (int i = 0; i < name.length; i++) {
//
//				}

				for (int j = 0; j < name.length; j++) {

					System.out.println((j + 1) + "번째만큼 이름 입력하세요. \n0을 누르면 이전페이지로 돌아갑니다.");
					name[j] = scan.next();
					
// 돌아가기					
					if (name[j].equals("0")) {
						break;
					}

					System.out.println("국어 점수 입력하세요");
					kor[j] = scan.nextInt();
					System.out.println("영어 점수 입력하세요");
					eng[j] = scan.nextInt();
					System.out.println("수학 점수 입력하세요");
		
					math[j] = scan.nextInt();

					// 자동계산
					total[j] = kor[j] + eng[j] + math[j];
					avg[j] = total[j] / 3.0;
					count++;
				} // for문 1번 입력
				break;

// 출력 (점수만 반복 출력)
			case 2:
				System.out.println("이름\t국어\t영어\t수학\t합계\t평균");
				System.out.println("--------------------------------------");

				// 학생 수만큼 반복 출력
				for (int i = 0; i < count; i++) {

					System.out.printf("%s\t%d\t%d\t%d\t%d\t%.2f \n", name[i], kor[i], eng[i], math[i], total[i],
							avg[i]);

				}
				break;
			}

// 학생 수 3명만큼 입력		
// 		
		} // while문

	}
}

 

2. 로또 프로그램 생성 1 // 로비 화면 구성 x

 

제약 (같은번호, 범위에 해당 되지 않는 번호)
입력에 따른 출력 화면 구현 (현재 입력 번호 나오게끔)
최종 화면 결과 (자동생성, 입력번호, 당첨번호, 당첨 개수)

import java.util.Iterator;
import java.util.Scanner;

public class C0512_03 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		// 로또 프로그램
		// 1. 배열 생성
		int L = 6; // 로또 번호 개수
		int random = 0, // 랜덤번호
				count = 0, // 당첨번호
				temp = 0; // 임시 저장 변수
		int[] lotto = new int[45]; // 입력번호
		int[] lottoNum = new int[L]; // 당첨번호
		int[] Mynum = new int[L]; // 로또번호
		String inputString = "";

		// 2. 로또 번호 생성
		for (int i = 0; i < lotto.length; i++) {
			lotto[i] = i + 1; // 1,2,3...45
//			lotto[i] = (int) (Math.random() * 45) + 1;

		}

		// 3. 번호 섞기 10번
		for (int i = 0; i < 10; i++) {
			random = (int) (Math.random() * 45); // 0-44 랜덤번호
			temp = lotto[0];
			lotto[0] = lotto[random];
			lotto[random] = temp;
		}

		// 4. 로또번호 입력
		for (int i = 0; i < 6; i++) {
			System.out.println("\n" + (i + 1) + "번째 로또번호를 입력하세요. 1~45까지");
			Mynum[i] = scan.nextInt();

			// 범위 포함 번호가 아닐 경우 다시 돌아가게 // 반복
			if (Mynum[i]<1||Mynum[i]>45) { // 1>Mynum[i]>45
				System.out.println("1~45 범위에 해당하지 않습니다. 다시 입력하세요");
				i--;
				
			}
			
			// 같은 번호일 경우 다시 돌아가게 // 반복
			for (int j = 0; j < i; j++) {
				if (Mynum[i] == Mynum[j]) { // 배열은 1==0 구조라 이건 같다라는걸 의미함.
					System.out.println("같은 번호입니다. 다시 입력하세요\n");
					i--; // 다시 입력받기 위해 i 값을 감소시킵니다.
					break;
				}
			} // for문

			System.out.print("현재까지 입력한 번호: ");
			for (int j = 0; j <= i; j++) {
				if (j == i) { // 마지막 (같아지는 부분)
					System.out.print(Mynum[j]);
				} else { // 처음 부분
					System.out.print(Mynum[j] + ", ");

				}

			}

//2트
//			System.out.println("현재까지 입력한 번호: ");
//			if (Mynum[i]==Mynum[i]) {
//				System.out.println(inputString += Mynum[i] + ",");
//				
//			}
//			else if (Mynum[i]==Mynum[i]) {
//				System.out.println("");
//				
//			}

//	        for (int j = 0; j < Mynum.length; j++) {
//            System.out.print((j + 1) + "번째 번호를 입력하세요: ");
//            Mynum[j] = scan.nextInt(); // 정수형으로 입력받아 배열에 저장
//            inputString += Mynum[j]; // 입력한 값을 문자열에 추가
//            if (j != Mynum.length - 1) {
//                inputString += ","; // 마지막 입력값은 쉼표를 추가하지 않음
//            }
//            System.out.println("현재까지 입력한 번호: " + inputString); // 입력한 값을 출력
//        }

		} // 입력 for문

//		System.out.println(lotto[5]);

		// 5. 로또번호 출력
		System.out.print("\n\n로또번호 자동생성 : ");
		for (int i = 0; i < L; i++) {
			System.out.print(lotto[i]);
			if (i != 5) {
				System.out.print(",");
			}

		}

//		6.로또번호 확인
		for (int i = 0; i < L; i++) { // lotto배열
			for (int j = 0; j < L; j++) {
				if (lotto[i] == Mynum[j]) {
					lottoNum[count] = lotto[i]; // 당첨번호 넣기
					count++; // 당첨개수 증가
					continue; // 계속 이어가라

				}
			}
		}

		// 7. 입력 번호 출력
		System.out.print("\n\n입력번호 : ");
		for (int i = 0; i < 6; i++) {
			System.out.print(Mynum[i] + " ");
		}

		// 8. 당첨 번호 출력
		System.out.print("\n\n당첨번호 : ");
		for (int i = 0; i < count; i++) {

//			// 같은번호는 1개만 나오게
//			if (lottoNum[i] == i]) {
			System.out.print(lottoNum[i] + " ");
//			}

		}

//		for (int i = 0; i < lotto.length; i++) {
//			System.out.println(lotto[i]);
//		}

//당첨개수
		System.out.println("\n\n당첨 개수 : " + count);
	}
}

 

3. 로또 프로그램 생성 2 // 로비 화면 구성 o

 

초기 화면 // 1번 생성

 

2번&nbsp; 입력

 

 

3번 출력

 

import java.util.Iterator;
import java.util.Scanner;

public class C0512_04 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		//
//		1.로또번호생성
//		2.로또번호출력 ex)자동생성,입력번호,당첨번호,당첨개수

		// 임시저장,랜덤변수,당첨개수,스캔인풋변수
		int temp = 0, random = 0, count = 0, input = 0;
		int L = 45; // 로또 최대 개수
		int[] lotto = new int[L]; // 로또 번호
		int[] Mynum = new int[6]; // 입력한 로또 번호
		int[] lottonum = new int[6]; // 당첨번호
//		int[] lotto = new int[];
//		int[] lotto = new int[];

		while (true) {
			System.out.println("\n [로또 프로그램]");
			System.out.println("1.로또번호 생성");
			System.out.println("2.로또번호 입력");
			System.out.println("3.로또번호 출력");
			System.out.println("0.종료");
			System.out.println("-번호를 입력하세요-");
			input = scan.nextInt();

			if (input == 0) {
				System.out.println("종료합니다.");
				break;
			}
			// case1은 한번만 생성하게!
//			if (input == 1) {
//				if (count == 1) {
//					System.out.println("로또번호는 한번만 생성합니다.");
//					break;
//				}
//			}
			switch (input) {

			// 로또번호 생성
			case 1:
//				1~45번 대입
				for (int i = 0; i < lotto.length; i++) {
//					input = scan.nextInt();
					lotto[i] = i + 1; // 1,2,3,....45
				}
				System.out.println("로또번호가 생성되었습니다 \n");

				for (int i = 0; i < 10; i++) {
					random = (int) (Math.random() * L); // 0-44 랜덤번호 (배열이니깐)
					temp = lotto[0];
					lotto[0] = lotto[random];
					lotto[random] = temp;
				}

//				count++;
//				
//				for (int i = 0; i < 100; i++) {
//					random = (int)(Math.random()*45)+1;
//					temp = lotto[0]; //temp를 lotto[0]처럼
//					lotto[0] = lotto[random]; // random값을 lotto[0] 배열에 넣기
//					lotto[random] = temp; // 로또랜덤에 lotto[0]이 저장된 값을 집어 넣기
//					
//				}
//				

				break;

			// 로또번호 입력
			case 2:
				for (int i = 0; i < Mynum.length; i++) {
					System.out.println("\n" + (i + 1) + "번째 번호를 입력하세요 1~45까지");
					Mynum[i] = scan.nextInt();

					// 범위 포함 번호가 아닐 경우 다시 돌아가게 // 반복
					if (Mynum[i]<1||Mynum[i]>45) { // 1>Mynum[i]>45
						System.out.println("1~45 범위에 해당하지 않습니다. 다시 입력하세요");
						i--;
						
					}
					
					// 다른 번호일 경우 다시 돌아가게 // 반복
					for (int j = 0; j >= L; j++) {
						System.out.println("다른 번호입니다. 1~45에서 입력해주세요");
						i--;
						break;

					} // 다른 번호 입력시 리턴 for문

					// 같은 번호 입력시 리턴 for문
					for (int j = 0; j < i; j++) {
						if (Mynum[i] == Mynum[j]) {
							System.out.println("같은 번호입니다. 1~45에서 입력해주세요");
							i--;
							break;
						}

					} // 같은 번호 입력시 리턴 for문
					System.out.print("현재까지 입력한 번호 : ");
					for (int j = 0; j <= i; j++) {
						if (j == i) {
							System.out.print(Mynum[j]);
						} else {
							System.out.print(Mynum[j] + ", ");
						}
					}

				} // for문 1

				// 5. 로또번호 개수 확인 같은지 아닌지 당첨번호랑 내번호가 같은지
				// 같다면 count 증가
				for (int i = 0; i < lottonum.length; i++) {
					for (int j = 0; j < lottonum.length; j++) {
						if (lotto[i] == Mynum[j]) {
							lottonum[count] = Mynum[i];
							count++; // 당첨개수을 위해 변수
							continue;
						}
					}
				}
				break;

			// 로또번호 출력
			case 3:
				System.out.print("로또 자동 생성 번호 : ");
				for (int i = 0; i < lottonum.length; i++) {
					System.out.print(lotto[i] + " ");
				}
				System.out.println();

				System.out.print("입력한 번호 : ");
				for (int i = 0; i < Mynum.length; i++) {
					System.out.print(Mynum[i] + " ");
				}
				System.out.println();

				System.out.print("당첨된 번호 : ");
				for (int i = 0; i < count; i++) {
					System.out.print(lottonum[i] + " ");
				}
				System.out.println();

				// 당첨개수 출력
				System.out.print("당첨개수 :" + count);

				System.out.println();
				break;

			}// switch문 마지막

		} // while문 마지막
	}
}

 

03파일의 조건을 그대로 가져옴

 

4. 바이너리 더블 배열 - 국영수합계 출력

 

교수님 코드

 

import java.util.Iterator;
import java.util.Scanner;

public class C0512_08 {
	public static void main(String[] args) {
		// 국어,영어,수학,합계
		Scanner scan = new Scanner(System.in);
		String[] title = { "국어", "영어", "수학", "합계" };
		int[][] score = new int[5][4]; // 5명의 국어,영어,수학,합계
		// 점수입력
		for (int i = 0; i < score.length; i++) {
			System.out.println((i + 1) + "번째 :");
			// 이름입력받으면 됨.

			for (int j = 0; j < 3; j++) {
				System.out.println(title[j] + " 점수를 입력하세요.");
				score[i][j] = scan.nextInt();
			}
			// 합계
			score[i][3] = score[i][0] + score[i][1] + score[i][2];
		}
		// 점수출력
		for (int i = 0; i < title.length; i++) {
			System.out.printf("%s\t", title[i]);
		}
		System.out.println();
		System.out.println("---------------------------------------");
		for (int i = 0; i < score.length; i++) {
			for (int j = 0; j < score[i].length; j++) {
				System.out.print(score[i][j] + "\t");
			}
			System.out.println();
		} // for

	}

}

//	public static void main(String[] args) {
//		Scanner scan = new Scanner(System.in);
//		
////		변수 선언
//		String[] title = {"국어","영어","수학"};
//		int[][] score = new int[5][3]; // 국영수 5명
//		
//		
//		
////		입력
//		for (int i = 0; i < score.length; i++) {
//			System.out.println((i+1)+"번째 : ");
//			for (int j = 0; j < score.length; j++) {
//				System.out.println("점수를 입력하세요.");
//				score[i][j] = scan.nextInt();
//
//			}
//		} // for문 끝
//
////		출력
//		for (int i = 0; i < score.length; i++) {
//			for (int j = 0; j < score.length; j++) {
//				System.out.println(score[i][j]+"\t");
//
//			}
//		} // for문 끝
//
//	}
//}

 

5. 바이너리 더블 배열 - 국영수합계 2 (한번더)

 

 

import java.util.Iterator;
import java.util.Scanner;

public class C0512_09_______ {

	public static void main(String[] args) {
		// 이름 국어,영어,수학,합계,평균
		Scanner scan = new Scanner(System.in);
		String[] title = { "이름", "국어", "영어", "수학", "합계" };
		String[] name = new String[5]; // 이름
		int[][] score = new int[5][4]; // 5명의 국어,영어,수학,합계
		// 점수입력
		for (int i = 0; i < score.length; i++) {
			System.out.println((i + 1) + "번째 :");
			// 이름입력받으면 됨.
			System.out.println("이름을 입력하세요.");
			name[i] = scan.next();
			for (int j = 0; j < 3; j++) {
				System.out.println(title[j + 1] + " 점수를 입력하세요.");
				score[i][j] = scan.nextInt();
			}
			// 합계
			score[i][3] = score[i][0] + score[i][1] + score[i][2];
		}
		// 점수출력
		for (int i = 0; i < title.length; i++) {
			System.out.printf("%s\t", title[i]);
		}
		System.out.println();
		System.out.println("---------------------------------------");
		for (int i = 0; i < score.length; i++) {
			// 이름 출력
			System.out.print(name[i] + "\t");
			for (int j = 0; j < score[i].length; j++) {
				System.out.print(score[i][j] + "\t");
			}
			System.out.println();
		} // for

	}

}

//	public static void main(String[] args) {
//		Scanner scan = new Scanner(System.in);
//		// 5명 국영수합
//		// 합계 부분에 입력한 숫자를 더함
//		int[][] num = new int[5][4];
//		int[] total = new int[3];
//		String[] title = { "국어", "영어", "수학", "합계" };
//
//		// 점수입력
//
//		for (int i = 0; i < num.length; i++) {
//			System.out.println((i + 1) + "번째 입력하세요");
//			for (int j = 0; j < num[i].length - 1; j++) {
//				System.out.println("점수를 입력하세요");
//				num[i][j] = scan.nextInt();
////			total[i] = num[i][j]+num[i][j];	
//			}
//			//j값은 존재 안함
//			num[i][3] = num[i][0] + num[i][0] + num[i][0];
//			
//		} // for문
//
//		//점수출력
//		for (int i = 0; i < num.length; i++) {
//			System.out.printf("%s\t",title[i]);
//		}
//		
//		for (int i = 0; i < num.length; i++) {
//			for (int j = 0; j < num[i].length; j++) {
//				System.out.println(num[i][j] + "\t");
//
////				total[i] = num[i][j]+num[i][j];
////				System.out.println(total[i]);
//			}
//			System.out.println();
//
//		} // for문
//
//	}
//}

 

5. 바이너리 더블 배열 - 국영수합계평균2 (한번더)

 

 

 

import java.util.Iterator;
import java.util.Scanner;

public class C0512_10 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		// 5명 이름 국영수합

		int A = 5; // 사람수
		int B = 5; // 카테고리수

//		자주 쓰는 변수 정리
//		score[i][j]

		String[] title = { "이름", "국어", "영어", "수학", "합계", "평균" };
		String[] name = new String[A];
		int[][] score = new int[A][B];
		int[][] total = new int[A][B]; // 왜 0은 적용이 안되는거지

//		입력
		for (int i = 0; i < score.length; i++) {
			System.out.println((i + 1) + "번째");
			System.out.println("이름을 입력하세요");
			name[i] = scan.next();

			for (int j = 0; j < score[i].length - 1; j++) {
				System.out.println(title[j + 1] + "점수를 입력하세요");
				score[i][j] = scan.nextInt();

				score[i][3] = score[i][1] + score[i][2] + score[i][3];
				score[i][4] = (score[i][1] + score[i][2] + score[i][3]) / 3;
//				score[i][3]= score[i][3]/3.0; 
				
				// 4에서 멈추기
				if (score[i][j] == score[i][B - 1]) {
					break;
				}
			}
		} // 입력 끝

//		출력
		for (int i = 0; i < title.length; i++) {
			System.out.print(title[i] + "\t");
		}
		System.out.println("\n--------------------------------------");
		for (int i = 0; i < score.length; i++) {
			// 이름 출력
			System.out.print(name[i] + "\t");
			for (int j = 0; j < score[i].length; j++) {
				System.out.print(score[i][j] + "\t");
			}
			System.out.println();
		} // 입력 끝

	}
}

 

 

* 핵심

- scanner 활용법

- 교수님 코드랑 비교해서 확실하게 코드 확인하기!!!

- 성적 프로그램, 로또 프로그램 만들기!!

 

 

* 숙제

- 0512 코드 전부 쳐서 이메일로 보내기 (onulee@naver.com)

- 시험 : class02

 

 

 

* 0512 실습 링크

 

 

GitHub - RosePaku/bigdata_java: 빅데이터_자바의_정석

빅데이터_자바의_정석. Contribute to RosePaku/bigdata_java development by creating an account on GitHub.

github.com

 

728x90
반응형
LIST