[Java] 반복문(for)

lkc9898·2022년 5월 15일

Java

목록 보기
9/25
post-thumbnail

반복문은 특정 코드들을 반복적으로 실행하고자 할 때 사용되며, 반복문의 종류는 for문, while문, do-while문이 있다. for문은 반복횟수를 알고 있을 때 주로 사용되며, while문은 조건에 따라 반복할 때 주로 사용된다.

for문

for문은 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행한다.

기본형태

for((초기화); (조건식); (증감식)) {
	//조건이 참일 경우 for문 내부 실행
}
  • 초기화는 for문이 시작할 때 최초 한 번만 수행하며, 사용할 변수의 초깃값을 정한다.
  • 조건식은 계속 반복할지 여부를 결정하는 조건이다. 조건식 안의 값이 true라면 실행문을 실행시키고, false 더 이상 블록을 실행하지 않고 끝낸다.
  • 증감식은 반복 횟수를 결정하는 규칙이다. 변수에 값을 더하거나 곱하는 등 수행 방식을 지정한다. ++은 반복문에서 자주 사용되는 증감연산자로, i++일 경우 i의 값을 1 증가시킨다.

정리하면 for문은 조건식의 조건을 검사한 후 true일 경우 for문 내부의 실행문을 실행하고 다시 돌아와서 조건을 검사하며, 조건이 false가 될 때까지 반복한다.

코드 예시

public class Main {
	public static void main(String[] args) {
    	int sum = 0;
        for (int i = 0; i < 10; i++;) { i의 초기값은 0, i가 10보다 작을 동안, i가 1씩 증가
        	sum += i; // sum = sum + i를 단축
        }
        System.out.println(sum); // i가 조건식이 false일 때까지의 합을 출력
    }
}

향상된 for문(enhanced for문)

배열과 컬렉션 객체를 좀 더 쉽게 처리하기 위한 for문 이다. 반복실행을 하기 위한 카운터 변수와 증감식을 사용하지 않고, 배열 및 컬렉션 항목의 개수만큼 반복한다.

코드 예시

String[] alphabet = {"Aa", "Bb", "Cc"};
for (String alphabetSet : alphabet) {
	System.out.println(alphabetSet);
}
/*
Aa
Bb
Cc
*/

for문의 괄호()안에는 저장할 변수, 콜론(:), 사용할 배열 을 작성한다. for문을 처음 실행할 때, 배열에서 가져올 첫번째 값이 존재하는지 확인 하고, 값이 존재하면 해당값을 저장할 변수에 저장한다. 그 다음 실행문을 실행하며 배열에 가져올 다음 항목이 없다면 자동으로 for문이 종료된다.

while문

for문이 정해진 횟수만큼 반복한다면, while문은 조건식이 true일 경우에 반복된다.
for문과 while문은 초기화, 증감식의 위치만 다를 뿐 상호 대체가 가능하다.

기본형태

(초기화)
while(조건식) {
	실행문; // 조건식이 참인 동안
    증감식;
}

초기화와 증감식이 필요 없다면 생략이 가능하다.

while문 무한루프

boolean run = true;
int num = 1;

	while(run){ // 조건문 무한루프
    	num++; //실행문
        System.out.println(num); //실행문

      	if(num == 22) { // 무한루프 탈출
        	run = false;
	}
}

while의 조건식을 true로 주고 원하는 값이 나올 때 if문으로 조건식의 boolean값을 false로 바꿔 무한루프를 탈출하는 방식이다.

do-while문

do-while문은 조건식에 의해 반복 실행한다는 점에서 while문과 동일하다. do-while문은 실행문을 우선 실행시키고 실행 결과에 따라 반복 실행을 계속 할지 결정하는 경우도 있다.

기본형태

do {
	실행문 //처음 한 번은 무조건 실행
} while (조건식);

do-while문이 처음 실행될 때 실행문을 먼저 실행한후 조건식을 평가한다. 그리고 그 결과가 true일 때 실행문 → 조건식으로 반복 실행 하고, false이면 do-while문을 종료한다.

다중 for문

구구단 같은 반복문 안에 반복문이 필요한 경우 사용되는데, for문 안의 for문에는 같은 기준의 값을 사용할 수 없다.

구구단 만들기

for문 안에 for문을 넣어 1*1 부터 9*9 까지 구구단을 만드는 과정이다.

for(int i = 1; i < 10; i++) {
	for(int j = 1; j < 10; j++) {
		System.out.println(i + "*" + j + "=" + (i*j));
	}
}
//1*1부터 9*9까지 출력

삼각형 그리기

이용자에게 삼각형 높이의 입력을 받아 입력에 맞게 삼각형을 만드는 과정이다.

Scanner sc = new Scanner(System.in); //사용자 입력을 받기위한 스캐너 선언
System.out.println("삼각형의 높이를 입력하세요.");
int height = sc.nextInt(); // 사용자 입력값을 높이에 할당
	for(int i = 1; i <= height; i++) {
    	for(int j = 1; j <= height - i; j++) {
        	System.out.print(" ");
            }
        for(int j = 1; j <= i; j++) {
        	System.out.print("*");
            }
        for(int j = 1; j < i; j++) {
        	System.out.print("*");
            }
        System.out.println(""); // 줄바꿈
        }
/* 5를 입력시 출력
    *
   ***
  *****
 *******
*********
*/

0개의 댓글