반복문

Cloudman·2022년 11월 12일

프로그래머스 자바

목록 보기
7/11

❓반복문

어떠한 것을 반복적으로 사용하고 싶을 때 사용하는 것
while, do while, for 문이 있다.




📒 while 문

조건문의 실행 결과가 true 일 동안 반복해서 실행한다.

int i = 0;

while (i < 10) {
    System.out.println(i);
    i++;    // 증감 연산자를 사용해 1 씩 증가 시키기
}

결과는 0 부터 9 까지 출력이 되고 끝이 난다.

int total = 0;
int i = 1;

while (i <= 100) {
    total += i;
    i++;
}

위 처럼 1 부터 100 까지의 합을 구하기 위해서 만들어서 사용이 가능하다.

System.out.println("total = " + total);
while (true) {
    System.out.println("어떠한 조건에 걸림");
}

위처럼 while 문의 조건에 true 를 넣어서 무조건 실행하게 한 다음 내부에 if 문을 사용해서 우선 실행하게 한 후에 조건에따라 사용도 가능하다.




📒 do while 문

while 문의 경우 조건이 만족되지 않을 때 실행되지 않지만
do while 문은 무조건 한번은 실행 한다.

int value = 0;
Scanner scan = new Scanner(System.in);



System.in 는 키보드를 의미한다.
즉, 키보드로부터 값을 입력받는 클래스라는 의미가 된다.

Scanner 라는 클래스는 java.util 이라는 패키지가 가지고 있는 클래스이다.
이는 자바가 미리 만들어 놓은 클래스이기 때문에 Scanner 를 타이핑하고 자동완성 하면

저렇게 최상단에 자동으로 추가된다.
이 클래스는 어디론가부터 값을 입력받기 위해 사용하는 클래스이다.

do {
    // 반복할 문장들
    value = scan.nextInt();
    
    // scan 변수에 정수값을 입력받아서 value 에 넣어준다.
    
    System.out.println("입력받은 값 : " + value);
} while (value != 10);

System.out.println("반복문 종료");

이제 코드를 실행해 보면 콘솔창에서 내가 키보드로 값을 입력할 때 까지 계속 실행되어 있는 상태가 된다.

내가 키보드로 숫자를 입력하고 엔터를 치면 do 문 에 의해서 value 에 내가 입력한 숫자가 들어가고 프린트문에 의해 출력이 된다.

하지만 while 문의 조건인 10 이 아닐때 계속 돌아간다는 사항 때문에 다시 do 문으로 돌아가서 입력값을 기다린다.

그러다가 결국 10 을 입력받으면 while 문의 조건에 의해 정지되고 이 후에 있는 "반복문 종료" 프린트문이 실행되고 do while 문이 끝난다.




📒 for 문

for 구문 자체에 변수 초기화, 조건식, 증감식 이 한줄로 표현된다.

for문 안의 코드에 대한 일부 설명

int i = 0; 초기화 하는 부분
i <= 100; 조건식 부분
i++ 증감식 부분 즉, i-- 도 가능하다 !!

int total = 0;

for (int i = 0; i <= 100; i++) {
    total += i;
}

System.out.println(total);	// 결과 : 5050

이번에는 짝수만 출력 해보기

for (int i = 0; i <= 100; i++) {
    if (i % 2 != 0) {
        continue;
    }
    total += i;
}

System.out.println(total);	// 결과 : 2550

i 를 나눈 결과가 0 이 아닌 즉, 홀수 일때

결론적으로 짝수의 합 구하기 라는 의미가 된다.

continue 를 만나면 그 아래에 해당하는 코드들은 실행하지 않고 다시 돌아가서 for 문을 실행

즉, 아래의 문구를 무시한채로 다시 i 값을 증가 시킨다.


total = 0;
for (int i = 0; i <= 100; i++) {
    total += i;
    if (i == 50) {
        break;
    }
}

System.out.println(total);	// 결과 : 1275

i50 일 때 까지 값을 모두 누적시켜서 증가시키고
50 이 되면 break 로 인해 아예 반복문을 빠져나오게 된다.




📒 forEach 문

자바에서는 for 문으로만 기능하지만 다른 언어에서는 for each 라고 하기 때문에 그렇게 부르기로 했다.
자바 1.5 버전부터 추가되었다.

for each 문을 사용하기 전에는 아래와 같이 만들어야 했다.

그러면 이것을 for each 문으로 선언하면...

괄호 안의 구조는 아래와 같다.
( '타입' '값을 받아줄 변수명' : '출력하고 싶은 자료구조' )

자동으로 돌면서 값을 하나 꺼내주고 콜론 앞에는 그 값을 받아줄 변수를 선언해주면 된다.

for (int value : iarr) {
    System.out.println(value);
}

이렇게 하면 아래와 같은 결과를 얻을 수 있다.

profile
코린이

0개의 댓글