본문 바로가기
Programming/Java

[Java] 반복문 - for

by 코딩하는 랄로 2023. 9. 23.
728x90

순환문이란

순환문이란 이름 그대로 계속 순환(반복)한다는 의미이다. 그렇기에 흔히 반복문이라고 말하는 순한문은 프로그래밍 언어에서 많이 쓰이는 문법 중 하나이다.

 

자바에서 반복문은 다음과 같이 3가지가 있다.

  • for
  • while
  • do ~ while

모두 특정 조건식에 의해 참을 만족할 때 계속해서 반복문 내에 실행문을 실행시키는 문법으로 이번 시간에서는 for문에 대해서 알아보겠다.

 

 

 

for문

for문은 반복문 중에서도 가장 많이 사용되는 문법이다. for문의 구조는 다음과 같다.

 

for(1. 초기식 ; 2. 조건식 ; 4. 증감식) {
	3. 실행문
}

 

  • 초기식 : 최초에 단 한번 수행되는 식으로 조건식과 증감식에 사용될 변수를 초기화하는 부분으로 이미 선언된 변수를 사용할 경우 생략도 가능
  • 조건식 : for문의 실행문을 반복시키기 위한 조건식을 작성하는 란으로 조건식 또한 생략 가능
  • 실행문 : 조건식이 true일 때 실행되는 문
  • 증감식 : 위에 번호를 통해 알 수 있듯이 실행문이 실행된 다음 증감식을 수행(중요!!!!), 증감식이 끝나면 다시 조건식을 검사한다. 증감식 또한 생략 가능

 

반복을 작성할 때에는 작성한 반복문에 대해 다음과 같은 상황은 확실하게 인지하고 작성하여야 원치 않는 결과를 예방할 수 있다.

 

  • 몇 번 반복되는가?
  • 순환중에 사용된 인덱스값의 시작값과 끝값은?
  • 순환문이 끝난 뒤 인덱스 값은?

 

 

 

이중 for문

for 문 또한 중첩하여 사용할 수 있다. 이중 for문에 대해서는 위에서 설명한 for문의 구조와 흐름에 대해서 확실하게 이해를 한다면 쉽게 사용할 수 있다.

 

이중 for문은 이름 그대로 for문이 다른 for문의 실행문에 속해 있는 경우이다. 예를 들어, 이중 for문을 이용하여 구구단을 2~9단까지 출력한다고 하면 다음과 같이 작성할 수 있다.

 

public class Main {
	public static class main(String[] args) {
    	for(int i = 2; i <= 9; i++) {
        	System.out.println(i + "단");
        	for(int j = 1; j <= 9; j++) {
                	System.out.println(i + " X " + j + " = " + i * j);
            	}
            	System.out.println();
        }
    }
}

 

이렇게 for문은 이중 이상으로 계속해서 중첩할 수 있는데 이 때에 주의해야 할 점은 중첩될 수록 시간복잡도가 증가하기 때문에 프로그램의 동작 속도가 현저히 느려질 수 있다.

 

 

 

Enhanced for문

저번 글에서 enhanced switch에 대해서 알아보았듯이, for문에도 enhanced for문을 사용할 수 있다. 

 

enhanced for문을 사용하는 상황으로는, 배열을 순회할 때 사용한다. 특정 배열의 값을 하나씩 출력하고 싶은 때 일반 for문을 사용한다면 다음과 같이 사용하여야 한다.

 

public class Main {
	public static void main(String[] args) {
    	int[] arr = {1, 2, 3, 4, 5);
        
        for(int i = 0; i < arr.length; i++) {
        	System.out.println(arr[i]);
        }
    }
}

 

하지만 이 때 enhanced for문을 사용한다면 다음과 같이 간결하게 코드를 작성할 수 있다.

 

public class Main {
	public static void main(String[] args) {
    	int[] arr = {1, 2, 3, 4, 5);
        
        for(int i : arr) {
        	System.out.println(i);
        }
    }
}

 

arr에 저장된 값에 순서대로 접근하여 int형 변수 i에 대입하고 그 값을 바로 이용하여 출력할 수 있게 되는 것이다.

 

이 때에 주의할 점은 선언되는 변수가 배열에 저장된 변수들의 타입과 일치하여야 하지만 var을 이용한다면 어떤 타입이든 저장할 수 있다.

 

public class Main {
	public static void main(String[] args) {
    	int[] arr = {1, 2, 3, 4, 5);
        
        for(var i : arr) {
        	System.out.println(i);
        }
    }
}

 

728x90

'Programming > Java' 카테고리의 다른 글

[Java/자바] 반복문 - break, continue  (0) 2023.09.23
[Java/자바] 반복문 - while, do while  (0) 2023.09.23
[Java] 조건문 - Switch  (0) 2023.09.23
[Java] 조건문 - if  (0) 2023.09.23
[Java] 연산자 - SCE, 비트  (0) 2023.09.20