목차
1. 조건문
2. 캡슐화
3. 반복문
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)으로 평가됩니다.
그리고, 가장 먼저 만족하는 조건문만 실행됩니다.
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가 없을 경우 실행됩니다. 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()); // 나이 출력
}
}
private int age;age 변수는 private이라서 클래스 외부에서 직접 접근 불가합니다.p.age = 30 같은 코드는 에러가 발생합니다.setAge(int age) 메서드if (age >= 0) 조건을 통해 유효성 검사 수행:this.age = age;로 저장합니다."나이는 음수가 될 수 없습니다." 출력하고 저장하지 않습니다.getAge() 메서드private인 age 값을 외부에서 읽을 수 있도록 도와줍니다.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회 반복
int i = 0;
while (i < 3) {
System.out.println("while 반복: " + i);
i++;
}
동작 원리
1) 조건을 먼저 검사 후, true이면 블록 실행
2) 조건이 false가 되면 반복 종료
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);
}
✅ continue
for (int i = 0; i < 5; i++) {
if (i == 2) continue;
System.out.println("continue 예제: " + i);
}