if문
- if문은 제어문을 작성할 때 사용한다.
- if문을 사용하면 특정한 수행문을 실행되게 하거나 실행되지 않게 할 수 있다.
- if문에는 수행문의 실행여부를 결정지을 조건식이 필요하다.
- if문의 조건식은 수행결과가 boolean값인 연산식이어야 한다.
if문
제시된 조건을 만족하는 경우에만 수행문이 실행되어야 하는 경우 사용한다.
if (조건식) {
// 조건식이 true로 판정되면 블록내의 수행문이 실행된다.
}
if ~ else문
제시된 조건을 만족하는 경우와 만족하지 않는 경우 각각 실행할 수행문이 존재하는 경우 사용한다.
if (조건식) {
// 조건식이 true로 판정되면 블록내의 수행문이 실행된다.
} else {
// 조건식이 false로 판정되면 블록내의 수행문이 실행된다.
}
if ~ else if ~ else문
- 수행문의 실행여부를 결정하는 조건이 여러 개인 경우 사용한다.
- 제시된 조건식 중에서 true로 판정된 경우가 존재하면 해당 블록의 수행문이 실행되고, 나머지 조건식은 검사하지 않는다.
- 제시된 조건식 전부 true로 판정되는 경우가 존재하지 않을 때만 else 블록의 수행문이 실행된다.
- else 블록은 생략할 수 있다.
- else 블록은 여러 개 작성할 수 없다.
if (조건식1) {
// 조건식1이 true로 판정되면 블록내의 수행문이 실행된다.
} else if (조건식2) {
// 조건식2가 true로 판정되면 블록내의 수행문이 실행된다.
} else if (조건식3) {
// 조건식3이 true로 판정되면 블록내의 수행문이 실행된다.
} else {
// 위에서 제시한 조건식1, 조건식2, 조건식3이 전부 false로 판정되면 블록내의 수행문이 실행된다.
}
2번째 사진처럼 if문 안에서 연산하지 않고 구매금액대에 맞는 적립값을 변수 depositRate에 넣어 마지막에 포인트 변수에 저장하는 방법도 있다. 2번째 사진의 코드가 더 가독성 좋고, 반복되는 코드가 없음을 알 수 있다
내포된 if문
- if문은 다른 if문을 포함할 수 있다.
- if, else if, else 모두 다른 if문을 포함할 수 있다.
if (조건식1) {
// 조건식1이 true로 판정되면 블록내의 수행문이 실행된다.
if (조건식2) {
// 조건식1이 true로 판정되고, 조건식2도 true로 판정되면 블록내의 수행문이 실행된다.
} else {
// 조건식1이 true로 판정되고, 조건식2는 false로 판정되면 블록내의 수행문이 실행된다.
}
}
if (조건식1) {
// 조건식1이 true로 판정되면 블록내의 수행문이 실행된다.
} else {
// 조건식1이 false로 판정되면 블록내의 수행문이 실행된다.
if (조건식2) {
// 조건식1이 false로 판정되고, 조건식2가 true로 판정되면 블록내의 수행문이 실행된다.
}
}
내포된 if문을 통해서 평균점수를 나타내는 변수 avg값에 따라 합격 여부와 장학금 지급대상 여부를 확인하는 코드이다.
else~if문을 사용했다면 "합격입니다" 또는 "장학금 지급대상입니다" 만 출력이 될 것이다. 그러나
내포된 if문을 사용하면 첫 if 조건식에서 참이더라도 다른 if문을 만나 그 조건식 또한 만족해야 두번째 if문에 대한 수행문을 처리할 수 있다.
앞에 있던 코드와는 조금 반대되는 개념이다
똑같이 합격여부와 장학금 지금여부를 따지는 코드이지만 과목중 하나라도 40점을 넘지 못하면 불합격이 출력이 되어야 한다
boolean 타입의 변수 subjectFail을 만들어서 false로 초기화를 하고 각 과목별로 40점인 조건을 만족시키지 못하면 true로 값이 들어가며 true면 if(!subjectFail) 문이 수행하지 못하고 각 if에 해당하는 출력문구가 나오며 if문이 종료됐을 것이다.
if(!subjectFail)문은 위에 코드와 같으니 따로 설명하지 않겠다
위와 같은 코드인데 boolean 타입의 변수인 subjectFail을 따로 생성하지 않고 return문을 사용한 코드이다.
변수 생성 및 초기화를 하지 않고 오히려 return을 사용하는게 개인적으로 가독성이 더 좋게 느껴진다
retrun문
메소드의 실행을 즉시 중단시킨다.
return문을 활용했을 때 이러한 이점을 얻을 수 있다
- 프로그램의 구조를 단순하게 작성할 수 있다
- 코드의 가독성을 향상시킬 수 있다.
- 불필요한 검사가 실행되지 않게 한다
switch
- switch문은 단 하나의 조건식으로 많은 경우의 수를 처리할 수 있다.
- 처리할 경우의 수가 많은 경우 if문 보다 switch문을 사용하는 것이 유리하다
- switch문은 if와 달리 값에 대한 범위 비교가 불가능하다.
- switch문은 범주형 데이터의 값을 비교할 때 활용된다.
범주형 데이터의 예 : 성별(남/여), 고객등급(골드/실버/브론즈), 주문상태(결재완료/상품준비중/배달중/배달완료)
switch문의 형식
switch (조건식) {
case 값1 :
조건식의 연산결과가 값1과 일치하는 경우 실행될 수행문;
break;
case 값2 :
조건식의 연산결과가 값2과 일치하는 경우 실행될 수행문;
break;
case 값3 :
조건식의 연산결과가 값2과 일치하는 경우 실행될 수행문;
break;
default :
조건식의 연산결과와 일치하는 case문이 없을 때 실행될 수행문
}
switch문의 제약조건
- 조건식의 결과는 반드시 정수 또는 문자열이어야 한다.
- case문의 값은 정수, 문자, 문자열만 가능하며, 중복되지 않아야 한다.
- case문에 break가 없으면 일치하는 case문과 그 다음에 정의된 모든 case문 및 default문이 실행된다
- default문은 생략 가능하다.
'Java' 카테고리의 다른 글
Java_배열 [ Array ] (0) | 2023.10.27 |
---|---|
Java_반복문(for문, while문) (0) | 2023.10.27 |
Java_타입의 형변환 (0) | 2023.10.24 |
Java_변수와 자료형 (0) | 2023.10.24 |
Java 및 Java 설치방법 (0) | 2023.10.23 |