if문은 어떠한 조건이나 조건식에 대해 참과 거짓으로 판별하여 실행한다.
5/05 추가
단순 if문은 조건식이 true 일 때만 실행문을 수행한다. 조건식에는 true 또는 false를 산출 할 수 있는 연산식이나 논릿값, 변수가 올 수 있다. 조건식이 true일 때 수행할 실행문이 하나라면{}
를 생략할 수 있다.
if (조건식 또는 조건) {
해당 조건식이나 조건이 참
이면 해당 블록에 작성된 코드 실행
}
int a = 10, b = 10;
if (a == b) {
System.out.println("실행 O");
}
if (a != b) {
System.out.println("실행 X"); //이 부분은 실행이 안된다.
}
// 예) 짝수 판별
int num = 8;
if (num%2 == 0 ) {
System.out.println("짝수");
}
if (num%2 != 0) {
System.out.println("홀수"); // 이 부분은 실행이 안된다.
}
단일
뿐만 아닌 중첩 if문
도 가능하다.
if (조건문1) {
if (조건문 안의 조건문) {
조건문1이 참일 경우
중첩 if문의 조건을 보고 해당 if문 블록 조건문이 참이라면 여기도 실행됨
}
조건문1이 참이라면 여기도 실행됨
}
예시) Scanner class import 가정
Scanner sc = new Scanner(System.in);
int num = 10;
int inputNumOne, int inputNumTwo;
System.out.print("숫자 입력 : ");
inputNumOne = sc.nextInt();
if (num==inputNumOne) {
System.out.println("제시된 숫자와 첫번째 입력 숫자가 같음");
System.out.print("두번째 숫자 입력");
inputNumTwo = sc.nextInt();
if (num==inputNumTwo) {//두번째로 입력한 숫자가 같으면 조건문 실행됨
System.out.println("두번째 입력한 숫자와 제시된 숫자가 같음");
}
}
if문의 조건식에서 참과 거짓을 구분
하여 각기 실행할때 사용함
5/05 추가
if ~ else 문은 조건식의 true나 false에 따라 다른 실행문을 수행할 때 사용한다.
if(조건식){
조건이 참
일때 수행할 문장;
..
}else {
조건이 거짓
일때 수행할 문장;
..
}
참만 필요한 단일 if문 경우 else는 생략 가능하다.
예시)
int a=10, b=5;
if (a==b) { // 해당 조건이 참일때 수행
System.out.println("a와 b는 같지않음);
} else { // 위의 조건이 거짓일때 수행
// 위의 조건은 거짓이므로 여기가 실행된다
System.out.println("a와 b는 같음");
}
if만 가지고도 코드를 작성할 수 있지만 else if를 사용할 경우 if문 여러개보다 효율적으로 코드를 작성할 수 있다.
5/05 추가
조건이 다양할 때는 다중 if 문으로 표현하면 좋다. if문 다음에 else if 문을 연속 추가해 각 조건을 차례대로 점검한 후 만족하는 실행문을 수행한다.
if(조건식1){
조건식1이 참
일 때, 실행할 문장;
}else if(조건식2){
조건식 1이 거짓
이며 조건식2가 참
일 때, 실행할 문장;
}else if(조건식3){
조건식 1과 2가 거짓
이며 조건식3이 참
일 때, 실행할 문장;
}else{
위 조건을 모두 만족하지 않을 때
, 실행할 문장;
}
예시) Scanner class import 가정
System.out.println("1.사과 2.포도 3.감");
int select = 1;
System.out.println("선택한 번호 : " + select);
if (select == 1 ) {
System.out.println("1.사과");
} else if (select == 2) {
System.out.println("2.포도");
} else if (select == 3){
System.out.println("3. 감");
} else {
System.err.println("오류오류오류");
}
System.out.println();
덧. 자기주도 학습이라고 저번 강의정리 포스팅에 언급했는데 if문은 다음주차 진도였다. 예정 진도 상관없이 되는한 최대로 진행하는걸 목표를 하고 있다.
if문과 더불어 if문에 관련된 문제들을 푸느라 4~5일치 한번에 작성하게 되었다.
*인용글은 한빛아카데미 - 쉽게 배우는 자바 프로그래밍 / 우종정 지음 참조했습니다.