조건문, 캡슐화, 그리고 반복문에 대해

labbiel·2025년 4월 15일

자바

목록 보기
5/9
post-thumbnail

목차
1. 조건문
2. 캡슐화
3. 반복문

조건문

  1. if~ else
    조건에 따라 코드를 선택적으로 실행할 때 사용합니다.

    int score = 85;
    
    if (score >=90) {
    	System.out.println("A 학점입니다.");
    } else if (score >=80) {
    	System.out.println("B 학점입니다.");
    } else {
    	System.out.println("C 학점입니다.");
    }

    동작 원리
    1) 조건식은 위에서부터 순서대로 평가됩니다.
    2) score가 85이므로 첫 번째 if(score >= 90)은 false → 넘어갑니다.
    3) 두 번째 else if(score >= 80)이 true → 해당 블록 실행됩니다.
    4) 이후 조건은 체크하지 않고 종료됩니다.

    즉, 조건은 boolean 값(true/false)으로 평가됩니다.
    그리고, 가장 먼저 만족하는 조건문만 실행됩니다.


  1. switch문
    변수 값에 따라 여러 분기 처리를 깔끔하게 할 수 있습니다.

    int day = 3;
    
    switch(day) {
       case 1:
     	System.out.println("월요입니다..");
         break;
       case 2:
     	System.out.println("화요일입니다.");
         break;
       case 3:
         System.out.println("수요일입니다.");
    			break;
       default:
         System.out.println("평일이 아닙니다.");
    }

    동작 원리
    1) day가 3이므로 case 3의 코드를 실행합니다.
    2) System.out.println("수요일입니다."); 출력 후 break로 switch문 종료합니다.
    3) break가 없다면 이후 case들도 실행될 수 있습니다.(fall-thirough 현상)

    • case에는 상수 값만 올 수 있습니다.
    • break를 쓰지 않으면 아래 case까지 실행됩니다.
    • default는 해당하는 case가 없을 경우 실행됩니다.


캡슐화(Encapsulation)

  • 정의: 외부에서 직접 필드에 접근하지 못하게 막고, 메서드를 통해 접근하도록 합니다.
  • 데이터를 보호하고 잘못된 값을 넣지 못하도록 방지합니다.
	public class Person {
    	private int age; // 외부에서 직접 접근 불가능한 변수
        
        public void setAge(int age) {
        	if (age >= 0) {
            	this.age = age; // 올바른 값이면 변수에 저장
            } else {
            	System.out.println("나이는 음수가 될 수 없습니다."); // 잘못된 값 처리
            }
        }
        
        public int getAge() {
        	return age; // 현재 나이 반환
        }
    }
    
    public class Main {
    	public static void main(String[] args) {
        	Person p = new Person(); // Person 객체 생성
            p.setAge(30); // 나이를 30으로 설정
            System.out.println("나이: " + p.setAge()); // 나이 출력
        }
    }
  1. Person 클래스 정의
  • private int age;
    age 변수는 private이라서 클래스 외부에서 직접 접근 불가합니다.
    → 즉, p.age = 30 같은 코드는 에러가 발생합니다.
  1. setAge(int age) 메서드
  • 외부에서 나이 값을 설정할 수 있게 도와줍니다.
  • if (age >= 0) 조건을 통해 유효성 검사 수행:
    • 0 이상이면 this.age = age;로 저장합니다.
    • 음수면 "나이는 음수가 될 수 없습니다." 출력하고 저장하지 않습니다.
  1. getAge() 메서드
  • privateage 값을 외부에서 읽을 수 있도록 도와줍니다.
  • 현재 저장된 나이 값을 리턴합니다.


반복문

1. for문

for (int i=0; i<5; i++) {
	System.out.println("i의 값: " + 1);
}

동작 원리
1) i=0 → 조건 i<5가 true → 출력 → i++ → 다시 조건 체크
2) 반복: 0, 1, 2, 3, 4 -> 총 5회 반복

2. while 문

int i = 0;
while (i < 3) {
    System.out.println("while 반복: " + i);
    i++;
}

동작 원리
1) 조건을 먼저 검사 후, true이면 블록 실행
2) 조건이 false가 되면 반복 종료

3. do ~ while 문

int i = 0;
do {
    System.out.println("do~while 반복: " + i);
    i++;
} while (i < 2);

동작 원리
1) 조건과 상관없이 최소 1번은 실행
2) 이후 while (i < 2) 조건을 평가하고 반복 여부 결정


💡 추가 개념: break / continue
✅ break

for (int i = 0; i < 10; i++) {
    if (i == 5) break;
    System.out.println("break 전: " + i);
}
  • 출력 결과: 0 ~ 4
  • 설명: i가 5일 때 반복문 중단됩니다.

✅ continue

for (int i = 0; i < 5; i++) {
    if (i == 2) continue;
    System.out.println("continue 예제: " + i);
}
  • 출력 결과: 0, 1, 3, 4
  • 설명: i가 2일 때는 출력하지 않고 다음 반복으로 넘어갑니다.

0개의 댓글