반복문

서지우·2023년 7월 5일
0

JAVA

목록 보기
8/28

for문

for (초기화;조건식;증감식;) {
	// 조건식이 true일 때 수행될 문장들을 적는다.
}

실습 - ch04 / S09.java

주석으로 설명..

package ch04;

public class S09 {
    public static void main(String[] args) {
        
        // int i = 1;

        // while (i <= 100000) {
        // System.out.println(i);
        // // 보통 기준이 되는 변수를 내부에서 조작 해야한다.
        // i++;
        // }

        // 소괄호 첫번째 == 반복 변수 설정
        // 소괄호 두번째 == 반복 종료 조건
        // 소괄호 세번째 == 반복 변수 값 조정
        // 소괄호 조건들은 세미콜론으로 나뉜다
        for(int i = 1; i < 100; i++){
            // for문 내부는 while과 똑같이
            // break, continue 사용 가능
        }
        // 무한반복
        // for(;;) {

        // }
    }
}

실습 - ch04 / S10.java

주석으로 설명..

package ch04;

public class S10 {
    public static void main(String[] args) {
        // 1에서 100까지 더해주세요

        int result = 0;
        for (int i = 1; i < 101; i++) {
            result = result + i;
        }
        System.out.println(result); // 5050

        // 2에서 100까지 짝수만 더해주세요

        int result1 = 0;
        for (int i = 2; i < 101; i = i + 2) {
            result1 = result1 + i;
        }
        System.out.println(result1); // 2550
    }
}

중첩 for문

실습 - ch04 / S12.java

주석으로 설명..

package ch04;

public class S12 {
    public static void main(String[] args) {
        // for. while 문을 이용해서 별찍기
        // "*****" 안됨 "*" 이걸루

        // 1번문제
        // *****
        // *****
        // *****
        // *****
        // *****

        System.out.println("1번문제");
        for (int i = 1; i < 6; i++) {
            for (int j = 1; j < 6; j++) {
                System.out.print("*");
            }
            System.out.println("");
        }

        for (int i = 1; i < 6; i++) {
            System.out.print("*");
            System.out.print("*");
            System.out.print("*");
            System.out.print("*");
            System.out.println("*");
        }

        // 2번문제
        // *
        // **
        // ***
        // ****
        // *****

        System.out.println("2번문제");
        for (int i = 1; i < 6; i++) {
            for (int j = 0; j < i; j++) {
                System.out.print("*");
            }
            System.out.println("");
        }
        System.out.println("------------------");

        


        // 3번문제
        // *****
        // ****
        // ***
        // **
        // *

        System.out.println("3번문제");
        for (int i = 1; i < 6; i++) {
            for (int j = 6; j > i; j--) {
                System.out.print("*");
            }
            System.out.println("");
        }


        System.out.println("-----------");

        
        for (int i = 5; i < 0; i++) {
            System.out.println("*".repeat(i));
        }

        // 4번문제
        // *****
        //  *** 
        //   *


        System.out.println("4번문제");
        for (int i = 1; i < 4; i++) {
            if(i == 1){
                System.out.print("*");
                System.out.print("*");
                System.out.print("*");
                System.out.print("*");
                System.out.println("*");
            }
            else if(i == 2){
                System.out.print(" ");
                System.out.print("*");
                System.out.print("*");
                System.out.print("*");
                System.out.println("");
            }
            else{
                System.out.print(" ");
                System.out.print(" ");
                System.out.print("*");
                System.out.print("");
                System.out.println("");
            }
        }

        // 5번문제
        // *****
        // *   *
        // *   *
        // *   *
        // *****

        System.out.println("5번문제");
        System.out.println("---------");

        for (int i = 1; i < 6; i++) {
            if (i >= 2 && i <= 4) {
                System.out.print("*");
                System.out.print(" ");
                System.out.print(" ");
                System.out.print(" ");
                System.out.println("*");
            }
            else{
                System.out.print("*");
                System.out.print("*");
                System.out.print("*");
                System.out.print("*");
                System.out.println("*");
            }
        }
        

    }
}

실습 - ch04 / S13.java

주석으로 설명..

package ch04;

public class S13 {
    public static void main(String[] args) {
        
        // for (int i = 0; i < 5; i++) {
        //     System.out.print(i);
        //     System.out.print("-");
        //     for (int j = 0; j < 5; j++) {
        //         System.out.print(j);
        //     }
        //     System.out.println();
        // }

        // 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 < 6; i++) {
            for (int j = 0; j < 6; j++) {
                System.out.print(i * j);
                System.out.print(" / ");
            }
            System.out.println();
        }

    }
}

실습 - ch04 / S14.java

주석으로 설명..

package ch04;

public class S14 {
    public static void main(String[] args) {
        // 이중 for문
        // repeat 없이
        // "*"

        // 2번문제
        // *
        // **
        // ***
        // ****
        // *****

        System.out.println("2번문제");
        for (int i = 1; i < 6; i++) {
            for (int j = 0; j < i; j++) {
                System.out.print("*");
            }
            System.out.println("");
        }

        // 4번문제
        // *****
        //  *** 
        //   *
        System.out.println("4번문제");
        for (int i = 1; i < 6; i+=2) {
            for (int j = 1; j < i; j+=2) {
                System.out.print(" ");
            }
            for (int j = 6; j > i; j--) {
                System.out.print("*");
            }
            System.out.println();
        }

        // 구구단
        // 2 X 1 = 2
        // ...
        // 9 X 1 = 9
        System.out.println("구구단");
        for (int i = 2; i < 10; i++) {
            for (int j = 1; j < 10; j++) {
                System.out.println(i + "X" + j + "=" + i*j);
            }
            System.out.println("");
        }
    }
}

while

while(조건식) {
	// 조건식의 연산결과가 true일 때 수행될 문장들을 적는다.
}

실습 - ch04 / S05.java

주석으로 설명..

package ch04;

public class S05 {
    public static void main(String[] args) {
        // 소괄호 안의 조건이 false가 될때까지
        // 무한반복한다
        // 소괄호 안에는 true나 false만 만 들어갈 수 있다.
        while(true){
            // 중괄호 안에는 반복할 코드를 작성한다.
            // 어떤 조건에 따라 내부에서 반복을 멈추려면 break
            // 어떤 조건에 따라 현재 위치에서 다음 반복으로 
            // 넘어갈 경우에는 continue를 사용한다.
        }
    }
}

실습 - ch04 / S06.java

주석으로 설명..

package ch04;

public class S06 {
    public static void main(String[] args) {
        // 보통 while은 기준이 되는 외부의 변수가 필요하다
        int i = 1;

        while (i <= 100000) {
            System.out.println(i);
            // 보통 기준이 되는 변수를 내부에서 조작 해야한다.
            i++;
        }
    }
}

실습 - ch04 / S07.java

주석으로 설명..

package ch04;

public class S07 {
    public static void main(String[] args) {
        // 터미널에서 ctrl + c로 강제 종료할 수 있다.
        int i = 1;
        while (true) {
            // if (i > 1000) {
            //     // while문 내부에서 반복을 멈출 때 사용
            //     System.out.println("반복종료 " + i);
            //     break;
            // }
            System.out.println(i);
            // if (i > 1000) {
            //     // while문 내부에서 반복을 멈출 때 사용
            //     System.out.println("반복종료 " + i);
            //     break;
            // }
            i++;
            if (i > 1000) {
                // while문 내부에서 반복을 멈출 때 사용
                System.out.println("반복종료 " + i);
                break;
            }
        }
        // break문에 따라 값이 달라지니 잘 써야함

    }
}

실습 - ch04 / S08.java

주석으로 설명..

package ch04;

public class S08 {
    public static void main(String[] args) {
        // continue

        int i = 1;

        // while (i < 1000) {
        //     if (i % 2 == 0) {// 이 조건에만 sout 작동하겠다
        //         System.out.println(i); // 짝수
        //     }
        // }

        while (i < 1000) {
            i++;
            if (i % 2 == 0) {// 이 조건에서는 sout 작동 안하겠다.
                // continue를 사용한 위치에서 현재 반복회차를 중지한다.
                // 다음 반복으로 넘어간다
                continue; // 배치 위치를 잘 지정해야한다.
                // if코드안에서만 반복도는 거임
                // continue 아래의 코드들은 삭제가 되는 것
            }
            System.out.println(i); // 홀수
        }
    }
}

문제풀기 - ch04 / S08Quiz.java

주석으로 설명..

package ch04;

public class S08Quiz {
    public static void main(String[] args) {
        // 1000 ~ 1 사이의 숫자 중에서
        // 5의 배수만 제외하고 출력하시오
        // 101미만이 되면 작동을 멈추시오

        int i = 1000;

        // 내가 푼 방식
        while (i > 101) {
            if (i % 5 == 0) {
                continue;
            }
            i--;
            System.out.println(i);
        }

        // 강사님이 푼 방식
        while (i > 0) {
            if (i < 101)
                break;
            if (i % 5 != 0)
                System.out.println(i);
            i--;
        }
    }
}

do-while문

실습 - ch04 / S11.java

주석으로 설명..

package ch04;

public class S11 {
    public static void main(String[] args) {
        // do while 무조건 1번은 작동되어야 한다.

        int i = 1;
        do {
            System.out.println(i);
            i++;
        } while (i < 11);
    }
}

break문

- 자신이 포함된 하나의 반복문 또는 switch문을 빠져 나온다
- 주로 if문과 함께 사용해서 특정조건을 만족하면 벗어난다.


continue문

- 자신이 포함된 반복문의 끝으로 이동한다.(다음 반복으로 넘어간다.)
- continue문 이후의 문장들은 수행되지 않는다.

profile
미래가 기대되는 풀스택개발자 공부 이야기~~

0개의 댓글