[스파르타 코딩] 반복문(for, while)

김동현·2022년 8월 23일
0

💡반복문이란

  • 특정 작업을 반복적으로 수행하는 프로그래밍 문법이다.

💡for문

  • 초기화식 : for문을 진입할 때 한 번 실행하는 구문이다.
  • 조건식 : 조건식이 참일 때 for의 블록들을 실행한다.
  • 증감식 : 한 번 수행 후 다음번에 조건을 체크하기 전에 수행해주는 구문이다.(증감식을 많이 사용한다.)
// for문의 기본적인 형식
for(초기화식; 조건식; 증감식){
	실행문
}

// 초기화식 없이도 가능하다.
int i = 0;
for(; i <= 100; i++){
...
}

// 초기화식이나 증감식은 두 개 이상도 가능하다.
for(int i = 0, j = 100; i <= 50 && j >= 50; i++, j --) {
...
}

// for 괄호안에 아무 내용도 작성하지 않으면 무한 반복이 된다.
for(;;){
...
}

// for-each문 (향상된 for문)
// seasons 배열에 있는 값을 하나씩 꺼내서 season 변수에 할당한다.
// 가독성이 좋다는 장점도 있지만 인덱스를 사용 못하고 배열이나 ArrayList의 값을 수정할 수 없다는 단점도 있다.
String[] seasons = {"spring", "summer", "fall", "winter"};
for(String season : seasons){
...
}


💡while, do while

  • for문과 마찬가지로 반복을 위해 사용하며 조건식이 true일 경우 반복하며 false라면 종료된다.
  • for문에는 초기식과 증감식 적는 곳이 명시되어 있지만 while문은 while문 밖에 초기식을 작성하고 안에 증감식을 작성할 수 있다.
  • break;본인을 감싸고 있는 반복문의 중괄호 하나를 벗어날 것이라는 의미이다.
  • continue;를 통해 continue문 아래에 있는 실행해야 하는 문장들을 건너 뛰고, 다음 반복을 시작한다.
  • 일반적으로 while문은 조건식이 참일 때 코드가 실행되되지만, do while 반복문은 조건을 확인하지 않고 무조건 한번 이상 실행 됩니다
// while문의 기본적인 형식
while(조건식){
	실행문
}

// while문의 초기식과 증감식
int a = 0; // 초기식
while(a <= 10){
	System.out.println(a);
    a++; // 증감식
}

// break문 사용하여 반복문종료
// 조건은 
public class Main {
    public static void main(String[] args) {

        int i = 0;
        int sum = 0;
        while(i < 10){
            sum += (i + 1);
            i++;
            if(i==5)
                break;
        }
        System.out.println(sum); // 출력값 15
    }
}

// continue문을 사용하여 반복문을 제어할 수 있다.
public class Main {
    public static void main(String[] args) {

        int i = 0;
        int sum = 0;
        while(i < 10){
            if(i==4){
                i++; // 증가시켜주지 않으면 무한반복에 빠진다.
                continue;
            }
            sum += (i+1);
            i++;
        }
        System.out.println(sum); // 출력값 50, continue 통해 +5 스킵
    }
}

// do while 반복문
// 처음 do{}부분을 실행하면 i의 값이 1이므로 while 조건식에 true가 되므로 다시 do{}로 진입한다.
// while 조건식에 false가 되면 do while 반복문이 종료되며 sum을 출력한다.
public class Main {
    public static void main(String[] args) {

        int i = 0;
        int sum = 0;
        do{
            sum += (i+1);
            i++;
        }while(i<10);
        System.out.println(sum); // 출력값 55
    }
}

조건과 언제 시행되는지에 관해
while -> i++ 없으면 무한 루프 빠지지 않게 조심

profile
오늘은 오늘

0개의 댓글