반응형
*중첩if문
- if문 블록내에서 또 다른 if문을 기술하는 것.
- 중첩 횟수에는 제한이 없음.
<기본 문법>
if(조건식1){
if(조건식1-1){
}
} else {
}
Q. 점수에 따른 학점 판별하기
/*
학생점수(score)에 대한 학점(grade) 판별
A 학점 : 90 ~ 100점
B 학점 : 80 ~ 89점
C 학점 : 70 ~ 79점
D 학점 : 60 ~ 69점
F 학점 : 00 ~ 59점
그 외 : 점수입력오류
*/
int score = 80;
String grade = "점수 입력 오류!";
if (0 <= score && score <= 100) { // 먼저 범위 입력부터 함!
grade = "F"; // 범위 넘어서는 것은 F 학점으로 하니 코드가 줄어듦.
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else if (score >= 70) {
grade = "C";
} else if (score >= 60) {
grade = "D";
}
grade += "학점";
}
System.out.println(grade);
*switch문 (switch ~ case 문)
- if문과 유사하게 조건에 따른 실행문장을 달리하는 조건문
- if문과 달리 조건식이 정수값, 문자열, Enum 상수 중 하나의 결과가 와야함.
- case 문에는 조건식 판별 결과와 비교할 값을 사용하며 범위 지정이 불가능하고, 값만 사용가능
- case 문의 값은 중복될 수 없으며, 순서는 상관없음
- break문은 각 case 문의 영역을 구분하는 역할
=> 즉, 각 case 문의 마지막에 break문을 빼먹는 실수를 하면 안됨.
- case 문 실행 후 break 문을 사용하며 switch ~ case 문을 빠져나갈 수 없으며, break문이 없을 경우 조건과 상관없이 다른 case 문 또는 default 문을 모두 실행함(break문을 만나거나 switch ~ case문이 끝날때까지 실행)
<기본문법>
switch(){
case 값1:
// 판별 변수가 값1과 일치할 경우 실행할 문장들
[break;]
case 값2:
// 판별 변수가 값2과 일치할 경우 실행할 문장들
[break;]
[default:] //일치하는 값이 없을때 도달하므로 값 없이 : 붙임
}
* 오늘의 문제 *
Q .세 정수 n1,n2,n3 중 최대값을 출력하라.
int n1 = 23;
int n2 = 21;
int n3 = 10;
int max = 0;
if(n1 > n2 && n1 > n3) {
max = n1;
} else if (n2 > n1 && n2 > n3){
max = n2;
} else {
max = n3;
}
// ==> 이렇게하면 조건식이 계속 늘어나니까...
// 코드를 규칙성있게 줄일 수 있는 방법.
int max = n1;
max = max > n2 ? max : n2; //n1이 크면 max에는 최대값이 담긴다.
max = max > n3 ? max : n3;
max = max > n4 ? max : n4;
//이렇게하면 규칙이 나오기 때문에 for문을 돌려서 한줄로 해결도 가능하다.
반응형
'자바스프링웹공부(2024) > 자바' 카테고리의 다른 글
2024.08.02. 반복문( for문, 중첩for문 ) (0) | 2024.08.02 |
---|---|
2024.08.01. 반복문(Loop) - while문, 중첩 while문 (0) | 2024.08.01 |
2024.07.25. 변수, 형변환, 연산자1 (0) | 2024.07.26 |
2024.07.26. 연산자 (0) | 2024.07.26 |
2024.07.23. 자바공부 (0) | 2024.07.25 |