Java 클래스 전까지의 범위를 복습하며 까먹거나 기억해야 할 내용들을 정리했다.
// 이중 반복문
// 별 (*) 사각형 만들기
//*****
//*****
//*****
//*****
//*****
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
// 별 왼쪽 삼각형 만들기
//*
//**
//***
//****
//*****
for (int i = 0; i < 5; i++) { // 줄바꿈 횟수
for (int j = 0; j < i + 1; j++) {
System.out.print("*");
}
System.out.println();
}
// 반대쪽 삼각형
// *
// **
// ***
// ****
//*****
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 4 - i; j++) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print("*");
}
System.out.println();
}
// 구구단
// 2 * 1 = 2
// 2 * 2 = 4
// 2 * 3 = 6
// 3 ....
// 9 * 9 = 81
for (int i = 2; i < 10; i++) {
for (int j = 1; j < 10; j++) {
System.out.println(i + " * " + j + " = " + (i * j));
}
System.out.println();
}
// Break
// 치킨 집에서 매일 20 마리만 판매 (1인당 1마리만 구매 가능)
// 손님이 50명 대기
// for 문
int max = 20;
for (int i = 1; i <= 50 ; i++) {
System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다.");
if (i == max) {
System.out.println("금일 재료가 모두 소진되었습니다.");
break; // 반복문 탈출
}
}
System.out.println("영업을 종료합니다.");
System.out.println("---------------------");
// While 문
int index = 1; // 손님 대기 번호
while (index <= 50) {
System.out.println(index + "번 손님, 주문하신 치킨 나왔습니다.");
if (index == max) {
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
index++;
}
System.out.println("영업을 종료합니다.");
}
// Continue
// 치킨 주문 손님중에 노쇼 손님이 있다고 가정
// For
int max = 20; // 최대 치킨 판매 수량
int sold = 0; // 현재 치킨 판매 수량
int noShow = 17; // 대기번호 17번 손님이 노쇼
for (int i = 1; i < 50; i++) {
System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다.");
// 손님이 없다면? (noShow)
if (i == noShow) {
System.out.println(i + "번 손님, 노쇼로 인해 다음 손님에게 기회가 넘어갑니다.");
continue; // 아래 코드 거치지 않고 바로 다음 증감으로 넘어감
}
sold++;
if (sold == max) {
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
}
System.out.println("영업을 종료합니다.");
System.out.println("------------------");
// While 문
sold = 0;
//int index = 1; // 손님 번호
int index = 0;
//while (index <= 50) {
while (index < 50) {
index++;
System.out.println(index + "번 손님, 주문하신 치킨 나왔습니다.");
// 손님이 없다면 (noShow)
if(index == noShow) {
System.out.println(index + "번 손님, 노쇼로 인해 다음 손님에게 기회가 넘어갑니다.");
//index++;
continue;
}
sold++; // 판매처리
if (sold == max) {
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
//index++; // index 증감연산자가 두개가 들어가는 경우 코드가 복잡해져서 수정
}
System.out.println("영업을 종료합니다.");
// 배열 : 같은 자료향의 값 여러 개를 저장하는 연속된 공간
// 배열 선언 첫 번째 방법
String[] coffees = new String[4];
// 두 번째 방법
String coffees[] = new String[4];
coffees[0] = "아메리카노"; // 0 부터 시작
coffees[1] = "카페모카";
coffees[2] = "라떼";
coffees[3] = "카푸치노";
// 세 번째 방법
String[] coffees = new String[] {"아메리카노", "카페모카", "라뗴", "카푸치노"};
// 네 번째 방법
String[] coffees = {"아메리카노", "카페모카", "라뗴", "카푸치노"};
// 배열의 순회
String[] coffees = {"아메리카노", "카페모카", "라뗴", "카푸치노"};
// for 반복문 순회
for (int i = 0; i < 4; i++) {
System.out.println(coffees[i] + " 하나");
}
System.out.println("주세요");
System.out.println("-------------");
// 배열의 길이를 이용한 순회
for (int i = 0; i < coffees.length; i++) {
System.out.println(coffees[i] + " 하나");
}
System.out.println("주세요");
System.out.println("-------------");
// enhanced for (for-each) 반복문 배열의 모든 요소를 순회할 때
for (String coffee : coffees) { // (배열과 똑같은 자료형의 변수 정의 : 배열) , coffees 의 배열을 순회하는데 순회 되는 값을 coffee 로 받음
System.out.println(coffee + " 하나");
}
System.out.println("주세요");
// 다차원 배열
// 소규모 영화관 좌석
// A1 - A5
// B1 - B5
// C1 - C5
String[] seatA = {"A1", "A2", "A3", "A4", "A5"};
String[] seatB = {"B1", "B2", "B3", "B4", "B5"};
String[] seatc = {"C1", "C2", "C3", "C4", "C5"};
// 3 x 5 크기의 2차원 배열
String[][] seats = new String[][] {
{"A1", "A2", "A3", "A4", "A5"},
{"B1", "B2", "B3", "B4", "B5"},
{"C1", "C2", "C3", "C4", "C5"}
};
// B2에 접근하려면?
System.out.println(seats[1][1]);
// C5에 접근하려면
System.out.println(seats[2][4]);
// 첫줄에는 3칸, 둘쨰 줄에는 4칸, 셋쨰 줄에는 5칸
String[][] seats2 = {
{"A1", "A2", "A3"},
{"B1", "B2", "B3", "B4"},
{"C1", "C2", "C3", "C4", "C5"}
};
// A3 에 접근하려면?
System.out.println(seats2[0][2]);
// A5 에 접근하려면?
// System.out.println(seats2[0][4]); //에러 - 배열의 범위를 벗어남
// 3차원 배열 만들기 (세로 x 가로 x 높이)
String [][][] marray = new String[][][] {
{ {}, {}, {}},
{ {}, {}, {}}
};
// 다차원 배열 순회
String[][] seats = new String[][] {
{"A1", "A2", "A3", "A4", "A5"},
{"B1", "B2", "B3", "B4", "B5"},
{"C1", "C2", "C3", "C4", "C5"}
};
for (int i = 0; i < 3; i++) { // 세로
for (int j = 0; j < 5; j++) { // 가로
System.out.print(seats[i][j] + " ");
}
System.out.println();
}
System.out.println("----------------");
String[][] seats2 = {
{"A1", "A2", "A3"},
{"B1", "B2", "B3", "B4"},
{"C1", "C2", "C3", "C4", "C5"}
};
for (int i = 0; i < seats2.length; i++) { // 세로
for (int j = 0; j < seats2[i].length; j++) { // 가로
System.out.print(seats2[i][j] + " ");
}
System.out.println();
}
System.out.println("-----------------");
// 세로 크기 10 x 가로 크기 15 에 해당하는 영화관 좌석
String[][] seats3 = new String[10][15];
String[] eng = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"};
for (int i = 0; i < seats3.length; i++) { //세로
for (int j = 0; j < seats3[i].length; j++) {
seats3[i][j] = eng[i] + (j+1);
}
}
// 표 구매
seats3[7][8] = "__";
seats3[7][9] = "___";
// 영화관 좌석 번호 확인
for (int i = 0; i < seats3.length; i++) { // 세로
for (int j = 0; j < seats3[i].length; j++) { // 가로
System.out.print(seats3[i][j] + " ");
}
System.out.println();
}