자바는 main() 메소드의 시작 중괄호{ 에서 끝 중괄호}까지 위에서 아래로 실행하는 흐름을 가지는데 이러한 흐름을 원하는 방향으로 바꿀 수 있도록 해주는 것을 제어문이라 한다.
제어문의 종류로 조건문과 반복문이 있다.
이번 포스팅에서는 조건문에 대해 먼저 알아보겠다.
조건문은 if문과 switch문이 있는데 조건이 하나일 경우 if문을 사용한다.
if( 조건식 ) {
실행문A //조건문이 true인 경우 A실행
}
실행문B //조건식이 false인 경우 B
🙋♂️ int=10; 일 때 if문을 활용해서 10보다 큽니다를 출력해보자.
int i =10;
if(i>10) {
System.out.println("10보다 큽니다.");
}
if(i>10) System.out.println("10보다 큽니다.");
//조건이 2개일 때
if(i>10) {
System.out.println("10보다 큽니다.");
}else {
System.out.println("10보다 작거나 같습니다.");
}
}
- 실행문이 하나일 경우 중괄호 블록을 생략할 수도 있다.
🙋♂️ Id와 Pw를 scanner를 이용해서 출력받고 설정한 아이디와 비밀번호가 일치하면 “일치합니다.”를 출력해보자
String userId="m111";
String userPw="1111";
//userId가 m111이면
if(userId.equals("m1111")) {
System.out.println("아이디가 일치합니다.");
}else {
System.out.println("아이디가 일치하지 않습니다.");
}
//userPw가 1111이면
if(userPw.equals("1111")) {
System.out.println("비밀번호가 일치합니다.");
}else {
System.out.println("비밀번호가 일치하지 않습니다.");
}
if ( 조건식 ) {
실행문A // 조건식이 true이면 A → C 실행
} else {
실행문B // 조건식이 false이면 B → C 실행
}
실행문C
if ( 조건식1 ) {
실행문A // 조건식1이 true이면 A → D 실행
} else if (조건식2) {
실행문B // 조건식1이 false이면 조건식2로 이동
//조건식2가 true이면 B → D 실행
} else {
실행문C //조건식2가 false이면 C → D실행
}
실행문D
if( 조건1 ) {
if( 조건2 ) {
// 조건1&&조건2와 같음
}
} else{
// 조건1이 false면 바로 else
// 조건1이 true여도 조건2가 false면 else
}
🙋♀️ 로그인 상활일 때 다음과 같이 나타낼 수 있다.
if( 아이디 조건 ) {
if( 비밀번호 조건 ) {
// 아이디 && 비밀번호 인경우 -> 로그인 성공
} else {
// 아이디 맞으나 비밀번호 틀림 -> 로그인 실패 (비밀번호가 틀렸습니다)
}
} else{
// 아이디가 틀리면 바로 else로 와서 -> 로그인 실패(아이디가 틀렸습니다)
}
🙋♀️ 국, 영, 수 점수를 입력하고 평균에 따라 학점을 출력하는 예제
```java
package org.java.conditionEx;
import java.util.Scanner;
public class IfEx4 {
public static void main(String[] args) {
System.out.println("if문");
/*
* 국어, 영어 수학 점수를 입력하고 총점(국+영+수)을 이용하여 평균을 계산한 후 평균이 90이상 "A", 80이상이면 "B", 70이상이면
* "C", 60이상이면 "D", 60미만이면 "F" 콘솔에 출력 되도록 프로그래밍 하세요. Scanner, nextInt(), if문 사용
*/
// 변수 선언 상단 위치
int kor = 0;
int math = 0;
int eng = 0;
int sum = 0;
double avg = 0.0;
Scanner input = new Scanner(System.in);
System.out.println("국어 점수 입력:");
kor = input.nextInt();
System.out.println("영어 점수 입력: ");
math = input.nextInt();
System.out.println("수학 점수 입력: ");
eng = input.nextInt();
sum = (kor + eng + math); // 총점=국어+영어+수학
avg = (double) sum / 3; // avg, sum 모두 정수이지만, 결과값이 실수이기 때문에 둘 중 하나를 실수형으로 바꿔줌
// -> 자동 형변환
if (avg >= 90) {
System.out.println("A");
} else if (avg >= 80) {
System.out.println("B");
} else if (avg >= 70) {
System.out.println("C");
} else if (avg >= 80) {
System.out.println("D");
} else {
System.out.println("F");
}
System.out.println("국어점수: " + kor + "점, 영어점수: " + eng + "점, 수학점수: " + math + "점");
System.out.println("총점: " + sum + "점");
System.out.println("평균: " + avg + "점");
input.close();
// 평균이 95이상 "A+", 90이상이면 "A", 85이상이면 "B+", 80이상이면 "B"
// 평균이 75이상 "C+", 70이상이면 "C", 65이상이면 "D+", 60이상이면 "D"
// 평균이 60미만이면 "F"
if (avg >= 90) {
if (avg >= 95) {
System.out.println("A+");
} else {
System.out.println("A");
}
} else if (avg >= 80) {
if (avg >= 85) {
System.out.println("B+");
} else {
System.out.println("B");
}
} else if (avg >= 70) {
if (avg >= 75) {
System.out.println("C+");
} else {
System.out.println("C");
}
} else if (avg >= 60) {
if (avg >= 65) {
System.out.println("D+");
} else {
System.out.println("D");
}
} else {
System.out.println("F");
}
}
}
```
break;
case 값2:
실행문B // 변수가 값2인 경우 실행문B 실행
break;
default:
실행문C //변수가 값1, 값2 모두 아닌 경우 (나머지 처리문) 실행문C 실행
}
글 잘 봤습니다.