본문 바로가기
> 개발/JAVA

자바와 반복문 : for문, 향상된 반복문, while문

by @일리 2023. 8. 1.

반복문 for

지겹도록 사용할 일이 많은 반복문! 자바에서의 반복문은 자바스크립트와 별반 다르지 않다.

// 자바스크립트

for (let i = 0 ; i <= 10; i++) {
  ... 
}

// 자바

for (int i = 0; i <= 10; i++) {
  ...
}

자바스크립트에서 선언 키워드를 작성한다면, 자바에서는 데이터 타입을 작성하는 정도의 차이다. 그래서 '음! 그렇군~'하며 보던 차에 신기한 것을 발견했당!! 바로 문자열로도 반복문을 만들 수 있다는 점이다! 우왕~!!

        for (char alpa = 'a'; alpa <= 'z'; alpa++){
            System.out.print(alpa + " ");
            System.out.println((int)alpa);
        }
        
// a 97
// b 98
// c 99
// d 100
// e 101
// f 102
// g 103
// h 104
// i 105
// j 106
// k 107
// l 108
// m 109
// n 110
// o 111
// p 112
// q 113
// r 114
// s 115
// t 116
// u 117
// v 118
// w 119
// x 120
// y 121
// z 122

위와 같이 알파벳 a~z까지 아스키코드 값을 출력하는 반복문을 작성할 수 있다! 자바스크립트도 가능한데 내가 몰랐던 걸까? 싶어서 또 챗 지피티 선생님께 물어봤다.

자바스크립트에서도 가능하다! 지피티 선생님께 컴퓨터가 문자를 아스키코드 값으로 인식하기 때문에 문자로도 반복문을 사용할 수 있는지 물었더니 다음과 같이 답변해주었다. 정말 정말 신기하다!!

JavaScript를 포함한 많은 프로그래밍 언어에서 문자는 내부적으로 ASCII(정보 교환을 위한 미국 표준 코드) 코드 값으로 표시됩니다. ASCII 코드는 문자, 숫자, 구두점 및 기타 특수 기호와 같은 각 문자에 고유한 번호를 할당하는 표준입니다.

JavaScript에서 산술 연산이나 문자 비교를 수행할 때 기본 ASCII 코드 값이 사용됩니다. 이렇게 하면 숫자와 마찬가지로 루프, 비교 및 ​​기타 작업에서 문자를 사용할 수 있습니다.

향상된 반복문 foreach

자바에는 향상된 for문이 있다. 그냥 반복문도 아니고 향상된 반복문이라니! 그게 뭘까?

for (데이터타입 변수명 : 컬렉션) {

... 

}

// 예시

        int[] arr = {1,2,3,4,5,6,7,8};
        
        for (int el : arr){
            System.out.println("el = " + el);
        }
        
// 출력 결과

//        el = 1
//        el = 2
//        el = 3
//        el = 4
//        el = 5
//        el = 6
//        el = 7
//        el = 8

이렇게 하면 굳이 증가시킬 변수를 만들어주지 않고도 쉽게 반복할 수 있다.

 

while문

        int num = 0;

        while (num <=5) {
            System.out.println("num = " + num);
            num++;
        }
        
//        num = 0
//        num = 1
//        num = 2
//        num = 3
//        num = 4
//        num = 5

while문은 조건을 먼저 검사한 뒤에 문장을 실행한다. 

 

do-while 문

        int num2 = 0;
        do {
            System.out.println("num2 = " + num2);
            num2++;
        } while (num2 <= 5);
        
    //num2 = 0
    //num2 = 1
    //num2 = 2
    //num2 = 3
    //num2 = 4
    //num2 = 5

do~while문은 먼저 실행한 뒤에 조건식을 검사한다.

이중포문

for문을 두 개 활용해서 이중 포문을 만들 수 있다. 이중 포문으로 구구단을 만들어보자.

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

// 2x1=2
// 2x2=4
// 2x3=6
// ....
// 9x8=72
// 9x9=81

이차원 배열의 요소도 이중 포문으로 쉽게 출력할 수 있다.

        int[][] arr = {{1,2,3,4,5}, {1,2,3,4,5}};

        for (int i = 0; i < arr.length; i++){
            for (int j = 0; j < arr[0].length; j++){
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }
        
// 1	2	3	4	5	
// 1	2	3	4	5

 

이렇게 여러 반복문을 보다보니 C언어나 자바스크립트, JAVA 모두 크게 형태가 다르지 않다. 휴 정말 다행이다. 만약 모두 제각기 다른 형태였다면 헤롱헤롱~(@~@)~상태였을 것이다. 이런 점 때문에 프로그래밍 언어를 여러 개 배울수록 학습속도가 빨라지나보다~!

댓글