조건문 : 특정 조건에 따른 실행문을 분기하는 제어문이다.
if문
- 조건이 참, 거짓을 판단하여 참인 경우 실행문 실행
- 조건식은 boolean 타입의 변수 또는 식이면 모두 가능
- 조건식이 true이면 실행문 1부터 실행문 n까지 순차적으로 실행 후 정상 실행으로 돌아옴
- 조건식이 false이면 {} 블럭 건너뛰고 정상 실행
- if문의 {} 가 생략된 경우 if문 바로 아래 또는 바로 옆 실행문 하나만 if문의 실행문이 된다.
문법) if(조건식) {
실행문 1
...
실행문 n
}
int age = 18;
if(age > 18) {
System.out.println("성인");
}
if(age <= 18) {
//age가 18이하인 경우 출력
System.out.println("미성년자");
}
String name = "홍길동";
int score = 50;
if(score >= 60) {
System.out.println(name + "님,");
System.out.println("합격하셨습니다.");
}
if(score < 60) {
System.out.println(name + "님,");
System.out.println("안타깝지만 불합격하셨습니다.");
}
int birthYear = 2001;
if(birthYear % 2 == 0) {
System.out.println(birthYear + "년생은 건강검진 대상입니다.");
}
if(birthYear % 2 ==1) {
//birthYear의 값이 짝수가 아니면 건강검진 대상이 아님
System.out.println(birthYear + "년생은");
System.out.println("올해 건강검진 대상이 아닙니다.");
}
id가 "tester1"이고 비밀번호가 "test001"이거나
또는 id가 "tester2"이고 비밀번호가 "test002"이면
아래 실행결과와 같이 출력될 수 있도록 if문 작성
tester1 이 로그인할 경우
"테스트 로그인에 성공하셨습니다."
"tester1님 환영합니다."
tester2 이 로그인할 경우
"테스트 로그인에 성공하셨습니다."
"tester2님 환영합니다."
id = "tester2";
pass = "test002";
if((id.equals("tester1") && pass.equals("test001")) || (id.equals("tester2") && pass.equals("test002"))) {
System.out.println("테스트 로그인에 성공하셨습니다.");
System.out.println(id + "님 환영합니다.");
}
else문
- if의 조건이 거짓일 때 실행되는 블럭
- 반드시 if문 맨 아래 위치할 수 있음
- if문 없이 사용할 수 없음
if(age > 18) { //age가 18 초과인 경우
System.out.println("성인");
}else { //age가 18 이하인 경우 실행
System.out.println("미성년자");
}
if(score >= 60) {
System.out.println(name + "님,");
System.out.println("합격하셨습니다.");
}else {
System.out.println(name + "님,");
System.out.println("안타깝지만 불합격하셨습니다.");
}
if(birthYear % 2 == 0) {
System.out.println(birthYear + "년생은 건강검진 대상입니다.");
}else {
System.out.println(birthYear + "년생은");
System.out.println("올해 건강검진 대상이 아닙니다.");
}
age의 값이 8 이하이거나 또는 65 이상이면 age + "살은 할인 대상입니다." 실행
아니면 age + "살은 할인 대상이 아닙니다." 실행될 수 있도록 if, else문을 사용하여 조건문 완성
age = 5;
if(age <= 8 || age >= 65) {
System.out.println(age + "살은 할인 대상입니다.");
}else {
System.out.println(age + "살은 할인 대상이 아닙니다.");
}
id가 admin이고 비밀번호가 1234이면 아래 실행결과를 출력
실행결과)
"관리자 로그인에 성공하셨습니다"
"admin님 환영합니다"
String id = "hong1234";
String pass = "1234";
if(id.equals("admin") && pass.equals("1234")) {
System.out.println("관리자 로그인에 성공하셨습니다");
System.out.println("admin님 환영합니다");
}else {
System.out.println("로그인에 실패하셨습니다.");
System.out.println("아이디와 비밀번호를 확인하세요.");
}
else if문
- if문의 조건이 거짓일 때 다른 조건을 비교하여 참인 경우 실행문 실행
number의 값이 80 초과(보다 큰) 경우 "해당 숫자는 80을 초과합니다"라고 출력
int number = 78;
if(number > 80) {
System.out.println("해당 숫자는 80을 초과합니다.");
}else if(number > 70) {
//number가 80보다 작거나 같고 70보다 큰 경우
//"해당 숫자는 71과 80사이입니다."라고 출력
System.out.println("해당 숫자는 71과 80사이입니다.");
}else if(number > 60) {
System.out.println("해당 숫자는 61과 70사이입니다.");
}else {
System.out.println("해당 숫자는 60보다 작거나 같습니다.");
}
grade 변수의 값이 'A'이면 "A등급이시군요 점수는 90이상입니다."
'B'이면 "B등급이시군요 점수는 90미만 80이상입니다."
'C'이면 "C등급이시군요 점수는 80미만 70이상입니다."
'D'이면 "D등급이시군요 점수는 70미만 60이상입니다."
그외 "과락이시군요. 점수는 60점 미만입니다."
가 출력될수있도록 if문 작성
char grade = 'F';
if(grade == 'A') {
System.out.println("A등급이시군요 점수는 90이상입니다.");
}else if(grade =='B') {
System.out.println("B등급이시군요 점수는 90미만 80이상입니다.");
}else if(grade == 'C') {
System.out.println("C등급이시군요 점수는 80미만 70이상입니다.");
}else if(grade == 'D') {
System.out.println("D등급이시군요 점수는 70미만 60이상입니다.");
}else {
System.out.println("과락이시군요. 점수는 60점 미만입니다.");
}
중첩 if문
아이디, 비밀번호가 틀렸을 때 각각 안내하고 싶을 경우
String id = "admin";
String pass = "1234";
if(id.equals("admin")) {
if(pass.equals("1234")) {
System.out.println("관리자 로그인에 성공하셨습니다");
System.out.println("admin님 환영합니다");
}else {
System.out.println("비밀번호를 잘못입력하셨습니다.");
}
}else {
System.out.println("아이디를 잘못입력하셨습니다.");
}
중첩 if문을 사용하여 gender가 'M'이고 age가 18보다 큰 경우 "성인 남성입니다"
gender가 'M'이고 age가 18보다 작거나 같은 경우 "미성년자 남성입니다."
gender가 'F'이고 age가 18보다 큰 경우 "성인 여성입니다"
gender가 'F'이고 age가 18보다 작거나 같은 경우 "미성년자 여성입니다."
char gender = 'M';
int age = 20;
if(gender == 'M') {
if(age > 18) {
System.out.println("성인 남성입니다.");
}else {
System.out.println("미성년자 남성입니다.");
}
}else {
if(age > 18) {
System.out.println("성인 여성입니다.");
}else {
System.out.println("미성년자 여성입니다.");
}
}
'Java' 카테고리의 다른 글
[Java] for, 이중 for문 (2) | 2024.07.25 |
---|---|
[Java] switch case (2) | 2024.07.24 |
[Java] 대입연산자, 삼항연산자(조건연산자) (0) | 2024.07.22 |
[Java] 비트연산자 (0) | 2024.07.22 |
[Java] 논리연산자 (0) | 2024.07.22 |