본문 바로가기

코딩공부/JAVA

JAVA 제어문 [3] - 반복문과 배열

반복문(Looping statement)

조건에 따라서 프로그램이 반복적으로 동작

 

반복문 형식

while(반복 조건){ 실행될 코드 }

for(초기값 세팅; 반복 조건; 증가값){ 실행될 코드 }

 

for문의 실행 순서

1. 초기값 세팅 (딱 한번만 실행된다.)

2. 반복 조건의 참, 거짓을 확인 => 참이면 코드가 실행된다.

3. 코드 실행

4. 증가값

5. 반복 조건 체크(2)->3->4 를 반복하다가 조건이 안 맞으면 빠져나온다.

 

* 반복 횟수를 체크하는 변수의 값을 디버깅을 통해서 확인하면 좋다.

public class LoopApp {
	public static void main(String[] args) {
		
		System.out.println(1);
        System.out.println("=== while ===");
        int i = 0;
        //.. code ...
        while(i < 3) {
            System.out.println(2);
            System.out.println(3);
//          i = i + 1;
            //.. code ...
            i++;
        }
        System.out.println("=== for ===");
        for(int j=0; j < 3; j++) {
            System.out.println(2);
            System.out.println(3);
        }
         
        System.out.println(4);

	}
}

 

while 문은 자유도 높은 문법이지만, 반복과 관련된 필수적인 3가지 요소들이 서로 멀리 떨어질 수 있기 때문에, 특정 횟수만큼 반복을 실행할 때는 for문을 사용할 것을 권장한다. for문에는 필수적인 요소들이 하나로 패키징(응집)되어 있기 때문에 문제가 생길 가능성이 낮고, 코드의 의도를 파악하는 부분에서도 좋다.

 

Unreachable code : 실행될 수 없는 (닿을 수 없는) 코드. 앞의 코드가 무한루프로 끝나지 않아서 실행될 수 없다.

 

배열

(실습)

시스템 사용자 명단을 보관해서 관리해야 한다.

public class ArrayApp {

	public static void main(String[] args) {
		 // egoing, jinhuck, youbin 
//      String users = "egoing, jinhuck, youbin"; //한사람씩 꺼내 쓰기 불편 
        String[] users = new String[3]; // 배열 정의 
        users[0] = "egoing";
        users[1] = "jinhuck";
        users[2] = "youbin";
         
        System.out.println(users[1]);
        System.out.println(users.length); //배열의 길이 O. 배열에담긴 데이터 갯수 X
        
        // 배열에 값을 초기화 하면서 생성 
        int[] scores = {10, 100, 100}; // 원소, element
        System.out.println(scores[1]);
        System.out.println(scores.length);

	}
}

 

  • Index : 원하는 값을 찾기 위한 색인
  • Element(원소) : 각 배열 인덱스에 들어간 값

 

반복문 + 배열

(실습)

각 사람의 이름 앞뒤로 li 라는 html 태그를 붙여서 출력하려고 한다.

public class LoopArray {

	public static void main(String[] args) {
           /*
           *  <li>egoing</li>
           *  <li>jinhuck</li>
           *  <li>youbin</li>
           */

          String[] users = new String[3];
          users[0] = "egoing";
          users[1] = "jinhuck";
          users[2] = "youbin";

          for(int i=0; i<users.length; i++) {
              System.out.println("<li>"+users[i]+"</li>");
          }

	}
}