수업 내용 정리
(4주차 26일) 제어문 실습(조건문, 반복문, 분기문)
헨헨7
2024. 6. 8. 12:17
Java
제어문
> 조건문: 특정 조건에 따라 코드 실행
- if문
- if문
- if - else문
- if - else if - else문
// if
if(조건식) {
// 실행 코드
}
// if - else
if(조건식) {
// 실행 코드
} else {
// 실행 코드
}
// if - else if - else
if(조건식) {
// 실행 코드
} else if(조건식) {
// 실행 코드
}
// else if 문의 수는 제한이 없다.
...
else {
// 실행 코드
}
- switch문
- switch 문은 조건식의 결과값이(계산식, 변수, 리터럴) 어떤 값(정수, 문자, 문자열)을 갖느냐에 따라 실행문이 선택된다.
- 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문: 주어진 횟수만큼 코드를 반복 실행
- for문
- 향상된 for문
// for
for(초기식; 조건식; 증감식) {
// 실행 코드
}
// 향상된 for
for(변수 : 배열or컬렉션) {
// 실행 코드
}
- while문: 조건식이 true인 경우에 코드를 반복 실행. 반복문을 빠져나가기 위한 증감식, 분기문이 필요
- while문
- do-while문
//while
while(조건식) {
// 실행 코드
// 증감식 or 분기문
}
//do-while
do {
// 실행 코드
// 증감식 or 분기문
} while(조건식);
> 분기문: 반복을 멈추거나, 조건식으로 이동하는 경우 사용
- break문
- break 문은 switch 문과 for 문, while 문, do-while 문의 실행을 중지하고 빠져나갈 때 사용한다.
- 반복문이 중첩되어 있는 경우 break 문이 포함되어 있는 반복문만 중지하고 빠져나간다.
while(true) {
for(int i = 0; i < 10; i++ ) {
if (i == 5) {
break;
}
System.out.println("i : " + i);
}
}
- continue문
- continue 문은 반복문에서 이후의 문장을 실행하지 않고 증감식 또는 조건식으로 이동할 때 사용한다.
- 반복문이 중첩되어 있는 경우 continue 문이 포함되어 있는 가장 가까운 반복문의 증감식 또는 조건식으로 이동한다.
while(true) {
for(int i = 0; i < 10; i++ ) {
if (i == 5) {
continue;
}
System.out.println("i : " + i);
}
}