자바의 정석 4,5 - 조건문,반복문,배열 2
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
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 사용법 (정렬)
//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
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