Java - Repeat

CYSSSSSSSSS·2024년 2월 4일
0

자바

목록 보기
4/26

반복문

반복문

  • 특정 코드를 반복할 때 사용한다.
package loop;

public class While1_1 {
    public static void main(String[] args) {
        int count = 0;

        count += 1;
        System.out.println("현재 숫자는:" + count);
        count += 1;
        System.out.println("현재 숫자는:" + count);
        count += 1;
        System.out.println("현재 숫자는:" + count);
    }
}
  • 단순히 count를 증가 시키는 코드 이지만 중복된 코드의 반복이 생긴다.
  • 수많은 반복을 수행해야 하면 코드의 줄이 너무 길어진다.
  • 이를 해결하는게 반복문이다.

While

while(조건식){
	// 코드 
}
  • 조건식을 만족하면 참이면 코드 블럭을 실행하고 , 거짓이면 while문을 벗어난다.
package loop;

public class While1_2 {
    public static void main(String[] args) {
        int count = 0;

        while(count <3){
            count += 1;
            System.out.println("현재 숫자는:" + count);
        }
        
    }
}

While 심화

package loop;

public class While2_1 {
    public static void main(String[] args) {
        int sum = 0;
        sum = sum + 1;
        System.out.println("i=" + 1 + " sum=" + sum);

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

        sum = sum + 3;
        System.out.println("i=" + 3 + " sum=" + sum);
    }
}
  • 다음과 같이 요구사항이 변경되면 변수를 더많이 사용해야 한다.
  • i의 값을 표현할 때 i라는 변수를 만들어서 사용해야 한다.(조건식 + 출력)
package loop;

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

        while (i <=3){
            sum = sum + i;
            System.out.println("i=" + i + " sum=" + sum);
            i++;
        }
    }
}
  • 변수를 이용해서 i의 값을 변경하면 나머지 코드를 전혀 변경하지 않아도 된다.
  • 코드를 반복하는 횟수도 변수로 하여 변경사항을 최소화 하는 스킬에 익숙해져야한다.
package loop;

public class While2_3 {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        int endnum = 3;
        
        // i가 endnum 보다 작거나 같을때만 사용한다.
        while (i <= endnum){
            sum = sum + i;
            System.out.println("i=" + i + " sum=" + sum);
            i++;    
        }


    }
}

do-while문

  • while문과 구조가 비슷하지만 조건식에 상관없이 무조건 한 번 실행하는 코드이다.
do{
	// 코드
}while(조건식)
package loop;

public class DoWhile1 {
    public static void main(String[] args) {
        int i = 10;
        // do-while
        do{ // 첫 실행은 조건 없이 무조건 실행
            System.out.println("현재 숫자는:" + i);
        }while (i < 3); // 다음 반복부터 true이면 실행


        // while
        while (i < 3){  // 해당 코드는 false라 실행되지 않는다.
            System.out.println("현재 숫자는:" + i);
            i++;
        }
    }
}
  • 첫 코드문을 실행하고 다음 반복에서 조건이 만족할 때 다음 코드를 실행한다.

break , continue

  • 반복문에서 사용할 수 있는 키워드
  • break는 반복문을 탈출할 때 사용하는 키워드
  • continue는 반복문에서 즉시 조건식으로 이동하는 키워드이다.
package loop;

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

        while(true){
            sum = sum + i;
            if (sum > 10){
                System.out.println("합이 10보다 크면 종료: i=" + i + " sum=" + sum);
                break;
            }
            i++;
        }
    }
}
  • 조건식에 true이면 무한이 코드가 돌아갈 수 밖에 없다. 따라서 break문이 반드시 필요하다.
  • sum > 10보다 조건을 만족하고 break문을 만나 반복문에서 나올수 있다.

for

  • for문도 while문과 같은 반복문이고 , 반복 횟수가 정해질 때 사용한다.

기본 구조
for(1.초기식;2.조건식;4증감식){
//3.코드
}

  • 초기식 실행 , 딱 한번만 실행하는 식으로
  • 조건식을 검증한다. 참이면 코드 실행 , 거짓이면 for문을 나온다
  • 코드 실행
  • 코드 종료시 증감식 실행
  • 다시 2조건식을 검증
package loop;

public class For1 {
    public static void main(String[] args) {
        for(int i=0; i<10;i++){
            System.out.println(i); //0 ~ 9까지 
        }
    }
}
package loop;

public class For2 {
    public static void main(String[] args) {
        int sum = 0;
        int endNum = 3;

        // 더하기 1 + 2 +3
        for (int i=1;i<=endNum;i++){
            sum += i;
        }
        System.out.println("누적합 : " + sum);


    }
}

for vs while

  • for문이 while보다 더 깔끔한 이유는 조건검사 , 반복 후 작업 등이 규칙적으로 한 줄에 들어가 있어서 코드를 이해하기가 쉽다.
  • 특히 반복에서 증가하는 카운터 변수를 다른 부분과 명확하게 구분할 수 있다.

무한 루프 for

for(;;){
	// 이렇게 작성하면 안에 코드를 무한 반복한다.
}
package loop;

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

        for(;;){
            sum += i;
            if(sum >10){
                System.out.println("sum = " + sum);
                break;
            }
        }
    }
}
  • while을 안써도 for문과 if , break를 이용해서 사용할 수 있다.

중첩 반복문

  • 반복문 안에 반복문을 써서 연속된 반복문을 쓸수 있다.
package loop;

public class Nested1 {
    public static void main(String[] args) {
        for(int i =0;i<2;i++){
            System.out.println("외부 for 시작: " + i);
            for(int j=0; j<3;j++){
                System.out.println("내부 for: " +i+"-"+  j);
            }
            System.out.println("외부 for 종료 i : " + i);
        }
    }
}

-외부 for는 두번 내부 for는 3번 돈다 따라서 총6번에 반복문이 실행된다.

profile
개발자 되고 싶어요

0개의 댓글

관련 채용 정보