[JAVA] 조건문 if [if문, if-else문, if-else if문, 중첩 if문]

2022. 1. 18. 19:59·◎ Java/Java☕
728x90


1. 조건문이란? - if, switch

'조건문'은 조건식과 문장을 포함하는 블럭{}으로 구성되어 있으며, 조건문은 조건식의 연산결과에 따라 실행할 문장이 달라진다. 조건문은 if문과 switch문이 있으며, 주로 if문이 많이 사용된다.


2. if문

if문은 가장 기본적인 조건문이며, 조건식이 참(true)이면 괄호{} 안의 문장을 수행한다.

 

if (score > 60) { // 조건식 (score > 60)
	System.out.println("합격입니다."); // 조건식이 true일 때 수행될 문장
}

 

위 조건식의 결과는 'true'이므로 if문 괄호{} 안의 문장이 실행된다. 만일 조건식의 결과가 'false'이면 괄호{} 안의 문장은 수행되지 않을 것이다.


- 블럭{}

괄호{}를 이용해서 여러 문장을 하나의 단위로 묶을 수 있는데, 이것을 '블럭(block)'이라고 한다.

* 블럭 내의 문장들은 탭(tab)으로 들여쓰기(indentation)를 해주는 게 좋다.

 

if (score > 60) {   // 블럭의 시작

	System.out.println("합격입니다.");

}	 	   // 블럭의 끝

 

블럭 내의 문장이 하나뿐 일 때는 괄호{}를 생략할 수 있다.

 

if (score > 60)
	System.out.println("합격입니다."); // 괄호{}는 생략 가능
    
if (score > 60)	System.out.println("합격입니다."); // 한 줄로 쓰는 것도 가능

// ========================================================================

if (score > 60)
	System.out.println("합격입니다."); // if문에 속한 문장
    System.out.println("축하드립니다.");   // if문에 속한 문장이 아님

- 예제 FlowEx1.java

public class FlowEx1 {
	public static void main(String[] args) {
		int x = 0;
		System.out.printf("x=%d 일 때, 참인 것은?%n", x);
		
		if(x==0) System.out.println("x==0");
		if(x!=0) System.out.println("x!=0");
		if(!(x==0)) System.out.println("!(x==0)");
		if(!(x!=0)) System.out.println("!(x!=0)");

		x = 1;
		System.out.printf("x=%d 일 때, 참인 것은?%n", x);
		
		if(x==0) System.out.println("x==0");
		if(x!=0) System.out.println("x!=0");
		if(!(x==0)) System.out.println("!(x==0)");
		if(!(x!=0)) System.out.println("!(x!=0)");
	}
}

3. if-else문

'else'는 조건식의 결과가 거짓일 때, else 블럭의 문장을 수행하라는 뜻이다.

 

if (조건식) {
		// 조건식이 참(true)일 때 수행될 문장들을 적는다.
} else {
		// 조건식이 거짓(false)일 때 수행될 문장들을 적는다.
}

 

if (input == 0) {
	System.out.println("0입니다.");
}

if (input != 0) {
	System.out.println("0이 아닙니다.");
}

// 위의 식과 아래의 식은 같다.

if (input == 0) {
	System.out.println("0입니다.");
} else {
	System.out.println("0이 아닙니다.");
}

* 두 조건식은 어느 한 쪽이 참이면 다른 한 쪽이 거짓인 상반된 관계에 있기 때문에 변경 가능한 것


- 예제 FlowEx3.java

public class FlowEx3 {
	public static void main(String[] args) {
		System.out.print("숫자를 하나 입력하세요.>");
		
		Scanner scanner = new Scanner(System.in);
		int input = scanner.nextInt();	// 화면을 통해 입력받은 숫자를 input에 저장
		System.out.print("입력하신 숫자는 0");
		
		if (input == 0) {
			System.out.println("입니다.");
		} else { // input != 0인 경우
			System.out.println("이 아닙니다.");
		}
	}
}

4. if-else if문

한 문장에 여러 개의 조건식을 써야 하는 경우에는 'if-else if' 문을 사용하면 된다.

 

if (조건식1) {
	// 조건식1의 결과가 참(true)일 때 수행될 문장들을 적는다.
    
} else if (조건식2) {
	// 조건식2의 결과가 참(true)일 때 수행될 문장들을 적는다.
    
} else if (조건식3) {	// 여러 개의 else if를 사용할 수 있다.
	// 조건식3의 결과가 참(true)일 때 수행될 문장들을 적는다.
    
} else { // 생략 가능
	// 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다.
}

- 예제 FlowEx4.java

import java.util.Scanner;

public class FlowEx4 {
	public static void main(String[] args) {
		int score = 0;		// 점수를 저장하기 위한 변수
		char grade= ' '; 	// 학점을 저장하기 위한 변수. 공백으로 초기화한다.
		
		System.out.print("점수를 입력하세요.>");
		Scanner scanner = new Scanner(System.in);
		score = scanner.nextInt();	// 화면을 통해 입력받은 숫자를 score에 저장
		
		if(score >= 90) {		// score가 90점 보다 같거나 크면 A학점
			grade = 'A';
		} else if(score >= 80) {	// score가 80점 보다 같거나 크면 B학점
			grade = 'B';
		} else if(score >= 70) {	// score가 70점 보다 같거나 크면 C학점
			grade = 'C';
		} else {			// 나머지는 D학점
			grade = 'D';
		}
		System.out.println("당신의 학점은 " + grade + "입니다.");

		if(score < 70) {
			grade = 'D';
		} else if(score <= 70) {
			grade = 'C';
		} else if(score <= 80) {
			grade = 'B';
		} else {
			grade = 'A';
		}
		System.out.println("당신의 학점은 " + grade + "입니다.");
	}
}

5. 중첩 if문

if문의 불럭 내에 또 다른 if문을 포함시키는 것이 가능한데, 이것을 중첩 if문이라고 부른다.

* 중첩 if문 안에서 else-if도 사용 가능하다.

 

if (조건식1) {
	// 조건식1이 참(true)일 때 수행될 문장들을 적는다.

	if (조건식2) {
		// 조건식1과 조건식2가 모두 참(true)일 때 수행될 문장들을 적는다.

    } else
        // 조건식1이 참(true)이고, 조건식2가 거짓(false)일 때 수행될 문장들을 적는다.

} else {
	// 조건식1이 거짓(false)일 때 수행될 문장들을 적는다.
}

- 예제 FlowEx5.java

import java.util.Scanner;

public class FlowEx5 {
	public static void main(String[] args) {
		int score = 0;
		char grade = ' ', opt = '0';
		
		System.out.print("점수를 입력해주세요. >");
		
		Scanner scanner = new Scanner(System.in);
		score = scanner.nextInt();		// 화면을 통해 입력받은 점수를 score에 저장

		System.out.printf("당신의 점수는 %d입니다.%n", score);
		
		if (score >= 90) {			// score가 90점 보다 같거나 크면 A학점(grade)
			grade = 'A';
			if (score >= 98) {
				opt = '+';		// 90점 이상 중에서도 98점 이상은 A+
			} else if (score < 94) {
				opt = '-';		// 90점 이상 94점 미만은 A-
			}
		} else if (score >= 80) {		// score가 80점 보다 같거나 크면 B학점(grade)
			grade = 'B';
			if (score >= 88) {
				opt = '+';		// 80점 이상 중에서도 88점 이상은 B+
			} else if (score < 84) {
				opt = '-';		// 80점 이상 84점 미만은 B-
			}
		} else {
			grade = 'C';			// 나머지는 C학점(grade)
		}
		System.out.printf("당신의 학점은 %c%c입니다.%n", grade, opt);
	}
}

 

참고문헌 : 남궁성(2016), Java의 정석, 도우출판

728x90
'◎ Java/Java☕' 카테고리의 다른 글
  • [JAVA] 계절별 case를 하나의 코드로 바꾸기 [예제 FlowEx6.java 응용하기]
  • [JAVA] 조건문 switch [하나의 조건식으로 많은 경우의 수 처리하기]
  • [JAVA] chapter 03 연산자 연습 문제 [자바의 정석 3rd Edition]
  • [JAVA] 윤년 구하기(Leap Year) [삼항 연산자와 나머지 연산자를 활용한 코드 짜기]
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (937)
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (32)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (40)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (4)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (89)
        • 백준(BOJ)👨🏻‍💻 (70)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
        • 알고리즘(Algorithm)🎡 (10)
      • ◈ Study (102)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (6)
      • ◈ 공부모임 (39)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (11)
      • ◈ 자격증 공부 (37)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (113)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (44)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 태그

    꿀팁
    Java
    코딩 테스트
    백준 티어
    Error Note
    BOJ
    html
    CSS
    코딩
    Oracle
    Project
    SQL
    일상
    Database
    javascript
    jsp
    프로그래밍
    spring
    백준
    자바스크립트
  • 250x250
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[JAVA] 조건문 if [if문, if-else문, if-else if문, 중첩 if문]
상단으로

티스토리툴바