본문 바로가기
Programming 기초/Java

[Java] 반복문과 배열

by 뭉제 2023. 3. 11.
목차
1. 반복문
2. 배열
3. 반복문 + 배열

 

반복문


조건에 따라 특정 작업을 반복하게 하는 제어문을 반복문이라고 한다.

 

while 문

· 조건식에 사용되는 변수를 while 문 실행 전에 초기화 

· 조건식이 true인 동안 코드블럭의 작업을 반복하고, false가 되면 while 문을 벗어난다.

 

[기본구조]

  // 번호는 실행순서
  //    1
while(조건식){
	실행할 코드; //2
	...
}

** 조건식에 true 입력 -> 무한반복

 

for 문

· 조건식이 3개의 부분으로 나뉘어져 있다.(세미콜론(;)이 구분자)

   1. 변수의 초기화

   2. 조건식

   3. 1회 반복을 끝내고 수행할 연산

· 변수의 초기화는 for 문이 시작될 때 1번만 실행

· 조건식이 true이면 반복이 계속되며, false이면 for 문을 벗어난다.

· 1회 반복이 끝나면 지정한 연산을 처리하고, 다시 조건식을 확인해 반복작업을 실행한다.

 

[기본 구조]

  // 번호는 실행순서
  //  1      2      4
for(초기화; 조건식; 반복 후 작업){
	실행할 코드; //3
    ...
}

** 조건식에 true를 입력하거나 비어있으면 무한반복

 

=> for 문은 반복 횟수가 정해져있는 경우에,

     while 문은 반복 횟수를 알 수 없고 조건에 따라 반복이 계속되거나 중단되는 경우에 주로 이용한다. 

 

 

public class LoopApp {
	public static void main(String[] args) {
		System.out.println(1);
		
		System.out.println("=== while ===");
		int i=0;
		while(i<3) {
			System.out.println(2);
			System.out.println(3);
			i++; //i=i+1
		}
		
		System.out.println("=== for ===");
		for(int j=0; j<3; j++) { // 변수 j는 for문 내에서만 존재
			System.out.println(2);
			System.out.println(3);
		}
		
		System.out.println(4);
	}
}

실행결과

** 일반적으로 i라는 변수는 반복문에서 카운팅을 하기 위해 사용한다.

 

 

배열


배열은 같은 타입의 데이터들을 순차적으로 저장된 형태로, 반복되는 작업을 수행할 때 유용하게 사용할 수 있다.

 

 

1) 배열 선언 -> 타입[ ]  변수이름;

int[] scores;

· 배열 객체의 주소값을 가질 변수를 선언

 

2) 배열 생성 -> new 타입[원소 개수];

scores=new int[3];

· 데이터를 저장할 배열 공간을 할당받는다.

 

* 배열을 선언과 동시에 생성 -> 타입[ ] 변수이름 = new 타입[원소 개수];

int[] scores=new int[3];

· 배열 공간을 할당받고 이 배열에 대한 주소값을 변수에 저장

 

 

** 리터럴로 입력할 수 있는 데이터 타입의 경우, 중괄호({ }) 안에 원소를 리터럴로 입력할 수 있다.

-> 타입[ ] 변수이름 = {데이터, ...};

int[] scores={10, 100, 100};

 

=> 변수는 배열에 대한 주소값을 가지며, 그 자체가 배열은 아니다.

=> 배열은 자바에서 객체로 다뤄진다.(여러 필드와 메소드 존재)

 

public class ArrayApp {
	public static void main(String[] args) {
//		String users="tom, kim, lee";
		String[] users=new String[3];
		users[0]="tom";
		users[1]="kim";
		users[2]="lee";
		
		System.out.println(users[1]);
		System.out.println(users.length);
		
		int[] scores= {10, 100, 100}; //원소, element
		System.out.println(scores[1]);
		System.out.println(scores.length);
	}
}

실행결과

· 배열은 인덱스를 통해 접근하고 인덱스는 대괄호([ ]) 안에 입력

· 인덱스는 0부터 시작, 마지막 원소의 인덱스는 (배열 길이 -1)

· 배열 객체 내의 length 필드는 배열의 길이(원소 개수)를 나타낸다.

 

** 생성된 배열의 길이 변경 불가

 

 

반복문 + 배열


반복문은 배열과 함께 쓰면 유용성이 크게 늘어날 수 있다.

 

public class LoopArray {
	public static void main(String[] args) {
		String[] users=new String[3];
		users[0]="tom";
		users[1]="kim";
		users[2]="lee";
		
		/* 
		 * <li>tom</li>
		 * <li>kim</li>
		 * <li>lee</li>
		 */
		
		for(int i=0; i<users.length; i++) {
			System.out.println("<li>"+users[i]+"</li>");
		}
	}
}

실행결과

· 반복문을 이용해 users 배열에 담겨 있는 각각의 원소 앞 뒤에 <li> 문자열을 삽입하여 출력

· 조건식에 length 필드 이용

  -> 직접 배열의 길이를 입력하지 않아도 프로그램을 실행할 때마다 달라질 수 있는 원소의 개수를 반영 

 

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

[Java] 메소드의 입력  (0) 2023.03.16
[Java] 제어문과 배열 응용  (0) 2023.03.14
[Java] == vs equals  (0) 2023.03.09
[Java] 논리 연산자  (0) 2023.03.08
[Java] 조건문  (0) 2023.03.07

댓글