남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다.
조건문과 반복문
- 조건문 : 조건을 만족할때만 {}를 수행 (0~1번)
- 반복문 : 조건을 만족하는 동안 {}를 수행 (0~n번)
if문
- 조건식이 참(true)일 때, 괄호 {} 안의 문장들을 수행한다.
if (조건식) {
// // 조건식이 참(true)일 때 수행될 문장들을 적는다
}
조건식의 다양한 예
조건식 | 조건식이 참일 조건 |
90 <= x && X <= 100 | 정수 x가 90이상 100이하 일 때 |
x < 0 || x > 100 | 정수 x가 0보다 작거나 100보다 클 때 |
x % 3 == 0 && x%2 !=0 | 정수 x가 3의 배수지만, 2의 배수는 아닐 때 |
ch=='y' || ch=='Y' | 문자 ch가 'y' 또는 'Y'일 때 |
ch== ' ' || ch == '\n' || ch == '\n' | 문자 ch가 공백이거나 탭 또는 개행 문자 일 때 |
'A' <= ch && ch <= 'Z' | 문자 ch가 대문자일 때 |
'a' <= ch && ch <= 'z' | 문자 ch가 소문자일 때 |
'0' <= ch && ch <= '9' | 문자 ch가 숫자일 때 |
str.equals("yes") | 문자열 str의 내용이 "yes"일 때 (대소문자 구분) |
str.equalslgnoreCase("yes") | 문자열 str의 내용이 "yes"일 때 (대소문자 구분 x) |
블럭 {}
- 여러 문장을 하나로 묶어주는 것
if (score >60)
{ <-- 블럭의 시작
System.out.println("합격입니다"); //탭(tab)에 의한 들여쓰기 (가독성 ↑)
} <-- 블럭의 끝
if-else문
둘중의 하나 - 조건식이 참일 때와 거짓일 때로 나눠서 처리
if (조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다
}else {
// 조건식이 거짓(false)일 때 수행될 문장들을 적는다.
}
if-else if문
여러 개 중의 하나 - 여러 개의 조건식을 포함한 조건식
if (조건식1) {
// 조건식1의 연산결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식2){
// 조건식2의 연산결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식3) {
// 조건식3의 연산결과가 참일 때 수행될 문장들을 적는다.
} else { // 마지막은 보통 else 블럭으로 끝! else 블럭은 생략 가능
// 위의 어느 조건식도 만족하지 않을 떄 수행될 문장들을 적는다.
}
중첩 if문 ( if문 안의 if문)
if (조건식1) {
// 조건식의 연산결과가 true일 때 수행될 문장들을 적는다.
if (조건식2){
// 조건식1과 조건식2가 모두 true일 때 수행될 문장
} else {
// 조건식1이 true이고, 조건식2가 false일 때 수행될 문장
}
} else {
// 조건식1이 false일 때 수행되는 문장
}
switch 문
처리해야 하는 경우의 수가 많을 때 유용한 조건문
switch (조건식) {
case 값1 :
// 조건식의 결과가 값1과 같을 경우 수행될 문장
// ....
break;
case 값2 :
// 조건식의 결과가 값2와 같을 경우 수행될 문장
break;
default:
// 조건식의 결과와 일치하는 case문이 없을 때 수행될 문장
// default문은 없어도 되고, break문을 안써도 됨
}
1. 조건식의 계산
2. 조건식의 결과와 일치하는 case문으로 이동
3. 이후의 문장 수행
4. break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나감
* switch문은 --> IF문 변경 가능 / IF문은 --> Switch문으로 변경 불가능한 것도 있음
switch문 제약 조건
- switch문의 조건식 결과는 정수 또는 문자열(1.7부터) 이어야 한다
- case문의 값은 정수 상수 (문자포함), 문자열만 가능하며, 중복되지 않아야 한다.
int num, result;
final int ONE = 1;
switch (result) {
case '1' : // OK, 문자 리터럴 (정수49와 동일)
case ONE: // OK, 정수 상수
case "YES" : // OK, 문자열 리터럴 JDK 1.7부터 허용
case num : // 에러, 변수는 불가
case 1.0 : // 에러, 실수도 불가
}
'프로그래밍 > JAVA' 카테고리의 다른 글
자바의 정석 기초 ( for문 / 중첩 for문 / while문 / do-while문 / break문/ continue문 / 이름 붙은 반복문) (0) | 2020.06.23 |
---|---|
자바의 정석 기초 (Math.random() 사용하여 임의의 정수(실수) 만들기 / 난수 ) (0) | 2020.06.22 |
자바의 정석 기초 ( 연산자와 피연산자 / 연산자의 종류 / 연산자 우선순위 / 연산자 결합법칙) (0) | 2020.06.17 |
자바의 정석 기초 ( 타입간 변환방법 / 숫자 변환 / 문자 변환 / 문자열 변환) (0) | 2020.06.17 |
자바의 정석 기초 ( 화면 입력 Scanner) (0) | 2020.06.16 |
댓글