본문 바로가기
내일배움캠프(Sparta)/Java Handbook

[Java Handbook] Part 3-2

by mmm- 2023. 9. 12.

1. 반복문 (for)

for

: 특정 조건을 만족할 때까지 주어진 명령문 반복 실행

 

실행 순서

  1. 초기화
  2. 조건식
  3. 조건식이 참일 경우 문장 수행
  4. 증감식
  5. 조건식이 거짓이 될 때까지 반복

 

class Control3_2 {
    public static void main(String[] args) {
        // 1번
        for (int i = 1; i <= 10; i = i * 2) {
            System.out.println("1번 i는 현재 " + (i) + "입니다.");
        }
        System.out.println();

        // 2번
        for (int i = 10; i >= 1; i--) {
            System.out.println("2번 i는 현재 " + (i) + "입니다.");
        }
    }
}
class Control3_3 {
    public static void main(String[] args) {
        // 초기화 시 변수 2개 사용 가능. 단, 타입이 같아야 함
        for (int i = 1, j = 10; i <= 10; i++, j--) {
            System.out.println("i는 현재 " + (i) + "입니다.");
            System.out.println("j는 현재 " + (j) + "입니다.");
        }
        System.out.println();

        // 이렇게 변수 2개를 사용하여 조건식을 구성할 수 있음
        for (int k = 1, t = 10; k <= 10 && t > 2; k++, t--) {
            System.out.println("k는 현재 " + (k) + "입니다.");
            System.out.println("t는 현재 " + (t) + "입니다.");
        }
    }
}

 

중첩 for문

public class Control3_4 {
    public static void main(String[] args) {
        for(int i=2; i<=9; i++) {
            System.out.println(i + "단 시작합니다.");
            for(int j=1; j<=9; j++) {
                System.out.println("j는 현재 " + (j) + "입니다.");
                System.out.println(i + " * " + j + " = " + i*j);
            }
        }
    }
}

 

for each문

public class Control3_5 {
    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 3, 4, 5};

        for(int e : arr) {
            System.out.print(e + " ");
        }
    }
}

→ 배열 arr의 길이만큼 arr배열의 값들을 변수 e에 저장하고 for each문 안의 명령문을 반복해 실행하는 것


2. 임의의 정수 만들기

Math.random()

: 0.0과 1.0 사이의 임의의 double 값을 반환. Math클래스의 메서드

https://mstudy-recode.tistory.com/18

 

[Java Handbook] Part 2-2

1. Math Math : 수학과 관련된 메서드를 가지고 있는 클래스 round() : 실수를 소수점 첫째자리에서 반올림하여 정수 반환 ceil() : 올림값을 double형으로 변환 floor() : 내림값을 double형으로 변환 abs() : int

mstudy-recode.tistory.com

 

예를 들어, 1부터 5사이의 랜덤한 정수 값을 얻고 싶다면 아래와 같은 방법들을 참고하면 된다.

  1. 0.0 * 5 <= Math.random() * 5 < 1.0 * 5
  2. (int)0.0 <= (int)(Math.random() * 5) < (int)5.0
  3. 0 + 1 <= (int)(Math.random() * 5) + 1 < 5 + 1
  4. 1 <= (int)(Math.random() * 5) + 1 < 6
public class Control4_1 {
    public static void main(String[] args) {
        for(int i=0; i<20; i++) {
            // 1.
            //System.out.println((int)Math.random()*10 + 1);

            // 2.
            System.out.println((int)(Math.random()*11) - 5);
        }
    }
}

3. 반복문 (while)

while

: 특정 조건을 만족할 때까지 계속해서 주어진 명령문 반복 실행

 

실행순서

  1. 조건식
  2. 조건식이 참일 경우 문장 수행
  3. 조건식이 거짓이 될 때까지 반복
public class Control5_2 {
    public static void main(String[] args) {
        int sum = 0;
        int i = 0;

        while(sum <= 100) {
            System.out.println("i = " + i);
            System.out.println("sum = " + sum);
            sum += ++i;
        }
    }
}

4. 반복문 (do - while)

do while 문

: 특정 조건을 만족할 때까지 계속해서 주어진 명령문 반복 실행

 

루프에 진입하기 전 조건식부터 검사하는 while문과는 do while문은 달리 루프를 한 번 실행 후 조건식을 검사한다.
(결과와 상관없이 무조건 한 번은 루프를 실행)

 

실행순서

  1. 처음 한 번은 무조건 실행
  2. 조건식
  3. 조건식 이 참일 경우 문장 수행
  4. 조건식이 거짓이 될 떄까지 반복
public class Control5_3 {
    public static void main(String[] args) {
        int j=1;

        do {
            System.out.println("do / while 문이" + j + "번째 반복 실행중입니다.");
            j++;
        } while (j<20);

        System.out.println("do / while 문이 종료된 후 변수 j의 값은 " + j + "입니다.");
    }
}

5. break

break

: 자신이 포함된 하나의 반복문을 벗어남

public class Control6_1 {
    public static void main(String[] args) {
        int sum = 0;
        int i = 0;

        while(true) {
            if(sum > 100) {
                break;
            }
            ++i;
            sum += i;
        }

        System.out.println("i = " + i);
        System.out.println("sum = " + sum);
    }
}

6. continue

continue

: 자신이 포함된 반복문의 끝으로 이동 후 다음 반복으로 넘어감

public class Control6_2 {
    public static void main(String[] args) {
        for(int i=0; i<=10; i++) {
            if(i % 3 == 0) {
                continue;
            }
            System.out.println("i = " + i);
        }
    }
}

7. 이름 붙은 반복문

이름 붙은 반복문

: 여러 개의 반복문이 중첩되어 있을 경우 반복문에 이름을 붙이고 break문과 continue 문에 이름을 지정해 하나 이상의 반복문을 벗어남

class Control6_4 {
    public static void main(String[] args) {
        int i = 2;
        allLoop :
        while (true) {
            for (int j = 1; j < 10; j++) {
                if (i == 5) {
                    break allLoop;
                }
                System.out.println(i + " * " + j + " = " + (i * j));
            }
            i++;
        }
    }
}
class Control6_5 {
    public static void main(String[] args) {
        allLoop : for (int i = 2; i < 10; i++) {
            for (int j = 1; j < 10; j++) {
                if (i == 5) {
                    continue allLoop;
                }
                System.out.println(i + " * " + j + " = " + (i * j));
            }
        }
    }
}

'내일배움캠프(Sparta) > Java Handbook' 카테고리의 다른 글

[Java Handbook] Part 4-2  (0) 2023.09.12
[Java Handbook] Part 4-1  (0) 2023.09.12
[Java Handbook] Part 3-1  (0) 2023.09.12
[Java Handbook] Part 2-2  (0) 2023.09.12
[Java Handbook] Part 2-1  (0) 2023.09.12