[2023.08.14] Java 문법

이재하·2023년 8월 14일
0

항해99

목록 보기
16/48
post-custom-banner

TIL

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();
        }
post-custom-banner

0개의 댓글