[JAVA] 03. 조건문 if + if-else + switch
+ 단순 i f 문 +
if ( 조건식 ) {
실행문장
}
기본 형태는 다음과 같고 조건식은 비교나 논리 연산으로 구성된다. (비교와 연산을 혼합가능)
조건문에 대한 결과는 boolean값을 가지며 true이면 { }안의 실행문장을 수행하고 false이면 { }를 지나친다.
※ 만약 조건문에 대한 실행문장이 한 문장이라면 중괄호{ }를 생략할 수 있다.
// EX)
if (post >= 100) {
System.out.println("드디어 100개 포스팅!");
System.out.println("RD 최고최고");
}
+ i f - e l s e 문 +
단순 if문은 조건이 참일 때 수행할 실행 문장만 명령할 수 있다면
if-else문은 조건이 거짓일 때 수행할 문장도 명령할 수 있다.
혹은 조건을 단순히 참 or 거짓 두개로만 나누지 않고 더 세분화할 수 있다. (다중 if-else문)
// if-else EX)
if (post >= 100) {
System.out.println("드디어 100개 포스팅!");
System.out.println("RD 최고최고");
}
else {
System.out.println("좀 더 노력하자");
System.out.println("RD 화이팅화이팅");
}
그럼 지금 실행한다면 실행결과는
좀 더 노력하자
RD 화이팅화이팅
이렇게 출력될 것이다.
※ System.out.rprintln 은 문구를 모니터에 출력하는 명령어 / println 은 자동 줄바꿈된다.
그럼 System.out.print 라고 썼으면 위이 출력결과가 한 줄로 나왔겠군!!!
// 다중 if-else EX)
import java.util.Scanner; //입력할 수 있도록 하는 객체를 만들기 위한 명령어
//다음 포스팅에서 설명할 것
public class Age {
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("나이 입력 : ");
int ageY = scan.nextInt(); //여기까지는 아직 신경쓰지마유 곧 포스팅에 나옴!
if (ageY < 20) {
System.out.println("당신은 청소년!");
}
else if (20 <= ageY || ageY <= 40) { //여긴 중요!!!
System.out.println("당신은 청년!!");
}
else {
System.out.println("당신은 중장년!!!");
}
}
}
else if 에 쓰인 조건문을 보면 그냥 20 <= ageY <= 40 라고 써도 될 것을 20 <= ageY || ageY <= 40 라고 나눠썼다.
근데 ....진짜 왜 그렇지? 그냥 오류난다니까 맨날 나눠썼는데 왜 그런지 왜 생각 안해봤지?ㅋㅋㅋㅋㅋ...
내가 언젠가 나의 코딩 선생님을 만나게 된다면 꼭 알아내서 다시 고치러 온다..
만약 이걸 보는 사람이 있다면 쫌 만 기다려주유ㅠㅜ
암튼 그래서 만약 비교 연산자가 두개이상 필요하다면 꼭! 논리 연산자를 활용할 것!! 아니면 오류난다.
+ 중 첩 i f - e l s e 문 +
of course 하게도 if문 안에 또 if문을 삽입할 수 있다.
예제 생각하는거 너무 힘들어...내가 이렇게 idealess한 사람이라ㄴㅣ....
// 중첩 if-else EX)
if (post >= 100) {
System.out.println("드디어 100개 포스팅!");
System.out.println("RD 최고최고");
if (dayVisiter >= 100) {
System.out.println("RD 동네방네 자랑해야지");
}
else {
System.out.println("ㅎㅎㅎ");
}
}
else {
System.out.println("좀 더 노력하자");
System.out.println("RD 화이팅화이팅");
}
만약 내가 폿팅을 130개하고 일 방문자가 200명이라면 ><
이렇게 출력될 것이다.
......................................................
드디어 100개 포스팅!
RD 최고최고
RD 동네방네 자랑해야지
# ' ? : '
if-else를 ? 와 : 를 이용하여 나타낼 수 있다.
- 기본형태
( 조건식 ) ? 식1 : 식2 // 조건식이 참이면 식1을 수행하고 거짓이면 식2를 수행한다.
+ SWITCH문 +
만약 어떤 값에 따라 실행하는 문장의 경우가 여러 개인 경우 if문을 활용하는 것보다 switch문을 활용하는 것이 더 좋다.
switch문의 기본형태는 다음과 같다.
switch (식) {
case 값1:
식1;
break;
case 값2:
식2;
break;
case 값3:
식3;
break;
default:
식4;
break;
}
// switch문 EX)
switch (num) {
case 1:
System.out.println("월요일");
break;
case 2:
System.out.println("수요일");
break;
case 3:
System.out.println("금요일");
break;
default:
System.out.println("토요일");
break;
}
변수 num에 들어오는 수에 따라 case가 나뉘고 해당 case의 식을 수행한다.
만약 num에 1이라는 숫자가 대입된다면 "월요일"이라고 출력하고 2라는 숫자가 대입된다면 "수요일"이 출력되는 것!
case에 나와있는 숫자인 1,2,3을 제외한 다른 숫자가 대입되면 default문을 따른다.
물론!! case는 작성하는 사람 마음대로 필요한만큼 늘리고 줄일 수 있다.
# switch 옆에 num 자리에는 예를 들면 num%2와 같은 수식이 들어갈 수도 있다. 필요에 맞게 효율적이게 쓰면 된다.
또한 예제에서 1, 2, 3 과 같은 case의 값은 정수 리터럴, 문자 리터럴, 문자열 리터럴만 쓰일 수 있다.
# 각 case마다 break로 끝나는데 switch문은 if문과 다른 게 만족하는 case문부터 그 아래의 식을 차례대로 수행하기 때문에 해당 case문만 수행하도록 하려면 break를 이용하여 막아줘야 한다.
이런 성질 때문에 만약 case의 값은 다르지만 수행하는 식이 같다면 다음과 같이 코드를 짤 수도 있다.
// 성적에 따라 등급을 출력하는 코드
switch(score) {
case 100:
case 99:
case 98:
case 97:
case 96:
case 95:
System.out.println('A');
break;
case 94:
case 93:
....
case 90:
System.out.println('B');
break;
default:
System.out.println('C');
}