Study for Backend/Programming language - Java

[Java기초] 조건문과 반복문 및 배열

지미니박 2024. 2. 3. 18:02
//20240203

//      1. 조건문 - if
        System.out.println("== if ==");

        int waterTempeerature = 99;
        if(waterTempeerature >= 100){
            System.out.println(  "물이 끓습니다.");
        }else{
            System.out.println(  "물을 끓이는 중입니다.");
        }
        System.out.println();

        int score = 90;
        char grade = 0;
        if(score >= 90){
            grade = 'A';
        }else if(score >= 80){
            grade = 'B';
        }else if(score >= 70){
            grade = 'C';
        }else {
            grade = 'F';
        }
        System.out.println(  "grade" + grade);

        System.out.println();
//      2. 조건문 - switch
        System.out.println("== switch ==");

        String fruit = "apple";
        switch (fruit){
            case "apple":
                System.out.println(fruit + "는 5000원 입니다.");
                break;
            case "blueberry":
                System.out.println(fruit + "는 15000원 입니다.");
                break;
            default:
                System.out.println("해당 과일이 없습니다.");
                break;
        }

        System.out.println();
//      Q1. number의 값이 홀수인지 짝수인지 판단하는 코드를 작성하세요.
        int number = 5;
        if (number % 2 == 0){
            System.out.println("짝수입니다.");
        }else {
            System.out.println("홀수입니다.");
        }


        System.out.println();
//      Q2. 아래 주석은 위의 실습에서 진행한 score에 따라 grade를 출력하는 코드이다.
//        이를 switch 조건문 기반으로 바꿔보세요.
//        int score = 90;
//        char grade = 0;
//        if (score >= 90) {
//            grade = 'A';
//        } else if (score >= 80) {
//            grade = 'B';
//        } else if (score >= 70) {
//            grade = 'C';
//        } else {
//            grade = 'F';
//        }
//        System.out.println("grade = " + grade);

        score = 100;
        switch (score/10){
            case 10:

            case 9:
                grade = 'A';
                break;
            case 8:
                grade = 'B';
                break;
            case 7:
                grade = 'C';
                break;
            default:
                grade = 'F';
                break;
        }
        System.out.println("등급은" + grade + "입니다.");
        System.out.println();
//      1. 반복문 - for
        System.out.println("== for ==");
//      1-1. 기본 사용 방법
        for (int i = 0 ; i < 5 ; i++){
            System.out.println(i);
        }
//------------------test1
        System.out.println();
        for (int i = 0 ; i < 5 ; i++){
            for (int j = 0 ; j < i + 1 ; j++){
                System.out.print("*");
            }
            System.out.println();
        }
//------------------test2
        System.out.println();
        for (int i = 0 ; i < 5 ; i ++ ){
            if(i == 2){
                continue;
            }
            for (int j = 0 ; j < i + 1 ; j++){
                System.out.print("*");
            }
            System.out.println();
        }
//------------------test3
        System.out.println();
        for (int i = 0 ; i < 5 ; i ++ ){
            if(i == 2){
                break;
            }
            for (int j = 0 ; j < i + 1 ; j++){
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
//      1-2. for each
        int[] nums = {1,2,3,4,5};
        for (int i = 0; i < nums.length; i++) {
            System.out.println(i);
        }
        System.out.println();

        for(int numb : nums){ //반복할 대상을 오른쪽에 쓰면 됨
            System.out.println(numb);
        }

        System.out.println();
//      2. 반복문 - while
        System.out.println("== while ==");
//      2-1. while
        int i = 0;
        while (i < 5){
            System.out.println(i++);
        }
        System.out.println();

        i = 0;
        while (i < 5){
            if(i == 2){
                i++;
                continue;
            }
            System.out.println(i++);
        }
        System.out.println();
        i = 0;
        while (i < 5){
            if(i == 2){
                i++;
                break;
            }
            System.out.println(i++);
        }

        System.out.println();
//      2-2. do-while
        boolean knok = false;
        do {
            System.out.println("knok");
        }while (knok);


//      Q1. 아래와 같은 출력 결과를 반복문과 조건문을 이용하여 출력해보세요.
//      *
//      ***
//      *****
//      *******
        System.out.println();
        for (int x = 0 ; x < 8 ; x ++ ){
            if(x % 2 ==0){
                continue;
            }
            for (int y = 0 ; y < x ; y++){
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
//      Q2. 반복문을 실행할 때마다 물 온도를 1도씩 올리고 100도가 되면 종료한다.
//          추가로, 10도, 20도, ... 10도 간격으로 물 온도를 출력하시오.
        int waterTemperature = 0;
        while(waterTemperature < 100){
            waterTemperature++;
            if(waterTemperature % 10 == 0) {
                System.out.println("현재 물온도는 " + waterTemperature + "도 입니다.");
            }
        }

        System.out.println();
        // 1. 일차원 배열
        System.out.println("== 일차원 배열 ==");
        int[] myArray = {1,2,3};
        System.out.println("myArray[1] = " + myArray[1]);
        System.out.println();
        for (int j = 0; j < myArray.length; j++) {
            System.out.println("myArray = " + myArray[j]);
        }
        System.out.println();
        for (int k : myArray){
            System.out.println("myArray = " + k);
        }

        System.out.println();
        // 2. 이차원 배열
        System.out.println("== 이차원 배열 ==");
        int[][] myArray2 = {{1, 2, 3},{4, 5, 6}};
        System.out.println("myArray2[1][2] = " + myArray2[1][2]);
        System.out.println();
        for (int j = 0; j < myArray2.length; j++) {
            for (int k = 0; k < myArray2[j].length; k++) {
                System.out.println("myArray2["+j+"]["+k+"] = " + myArray2[j][k]);
            }
        }

        System.out.println();
        for (int[] ints : myArray2) {
            for (int anInt : ints){
                System.out.println("anInt = " + anInt);
            }
        }

        System.out.println();
//      Q1. 아래와 같이 3x3 행렬이 2차원 배열로 초기화 되어있다.
//          모든 원소를 1로 변경하고, 대각 원소는 10으로 변경하시오.
        int [][] testArray1 = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};

        for (int j = 0; j < testArray1.length; j++) {
            for (int k = 0; k < testArray1[j].length; k++) {
                testArray1[j][k] = 1;
                if(j == k) {
                    testArray1[j][k] = 10;
                }
            }
        }

        for (int[] itemRow : testArray1){
            for (int itemColumn : itemRow){
                System.out.print(itemColumn + "  ");
            }
            System.out.println();
        }