수업 내용 정리

(4주차 26일) 제어문 실습(조건문, 반복문, 분기문)

헨헨7 2024. 6. 8. 12:17

Java

제어문

> 조건문: 특정 조건에 따라 코드 실행

  • if문
    1. if문
    2. if - else문
    3. if - else if - else문
// if
if(조건식) {
    // 실행 코드
}

// if - else
if(조건식) {
    // 실행 코드
} else {
    // 실행 코드
}

// if - else if - else
if(조건식) {
    // 실행 코드
} else if(조건식) {
    // 실행 코드
} 
// else if 문의 수는 제한이 없다.
... 
else {
    // 실행 코드
}
  • switch문
    1. switch 문은 조건식의 결과값이(계산식, 변수, 리터럴) 어떤 값(정수, 문자, 문자열)을 갖느냐에 따라 실행문이 선택된다.
    2. if문과 달리, 코드를 실행하고 조건문을 빠져나가기 위해 break 문이 필요하다.
switch(값) { 
    case 값1 : 
        // 실행 코드; 
        break; 
    case 값2 : 
        // 실행 코드; 
        break; 
    ... 
    default : 
        // 실행 코드;
}
  • 참고: 리터럴의 비교 연산
/**
 * 참고
 * 리터럴로 작성되는 경우 비교 연산
 */
// 1. 스택 영역에 str1 변수 생성, 힙 영역의 상수 풀에 "홍길동" 문자열 저장하고 주소값 배정 
//    -> str1에 해당 주소값을 할당함
String str1 = "홍길동";
// 2. 힙 영역에 기존에 같은 문자열이 저장되어 있으므로, 해당 주소값을 str2에 할당
String str2 = "홍길동";
// 3. new String()을 통해 힙 영역에 새로 문자열을 저장하므로 새로운 주소값을 배정받고 할당
String str3 = new String("홍길동");

// 예시
// 같은 주소값을 배정받았기 때문에 true 반환되는 경우
System.out.println(str1 == str2);
System.out.println("홍길동" == "홍길동");
// 새로운 주소값을 할당받았으므로 false가 반환되는 경우
System.out.println("홍길동" == new String("홍길동"));

// equals 메소드: 내부적으로 데이터를 비교하여 같으면 true, 다르면 false
System.out.println("홍길동".equals("홍길동"));
System.out.println("홍길동".equals(new String("홍길동")));
System.out.println("홍길동".equals(name));

 


> 반복문: 특정 코드를 반복적으로 실행

  • for문: 주어진 횟수만큼 코드를 반복 실행
    1. for문
    2. 향상된 for문
// for
for(초기식; 조건식; 증감식) {
    // 실행 코드
}

// 향상된 for
for(변수 : 배열or컬렉션) {
    // 실행 코드
}

 

  • while문: 조건식이 true인 경우에 코드를 반복 실행. 반복문을 빠져나가기 위한 증감식, 분기문이 필요
    1. while문
    2. do-while문
//while
while(조건식) {
    // 실행 코드
    // 증감식 or 분기문
}

//do-while
do {
    // 실행 코드
    // 증감식 or 분기문
} while(조건식);


> 분기문: 반복을 멈추거나, 조건식으로 이동하는 경우 사용

  • break문
    1. break 문은 switch 문과 for 문, while 문, do-while 문의 실행을 중지하고 빠져나갈 때 사용한다.
    2. 반복문이 중첩되어 있는 경우 break 문이 포함되어 있는 반복문만 중지하고 빠져나간다.
while(true) {
    for(int i = 0; i < 10; i++ ) {
        if (i == 5) {
            break;
        }

        System.out.println("i : " + i);
    }
}
  • continue문
    1. continue 문은 반복문에서 이후의 문장을 실행하지 않고 증감식 또는 조건식으로 이동할 때 사용한다.
    2. 반복문이 중첩되어 있는 경우 continue 문이 포함되어 있는 가장 가까운 반복문의 증감식 또는 조건식으로 이동한다.
while(true) {
    for(int i = 0; i < 10; i++ ) {
        if (i == 5) {
            continue;
        }

        System.out.println("i : " + i);
    }
}