코딩이란 무엇일까

[Java/자바]제어문(1)_if,else if, else 본문

Java

[Java/자바]제어문(1)_if,else if, else

둥구는 지굴다 2022. 9. 20. 23:08

안녕하세요 오늘은 제어문에 대해 알아보고 

제어문 중의 하나인 if조건문을 알아보겠습니다.

제어문의 정의

제어문이란 프로그램의 흐름을 제어하는 문법을 뜻합니다.

프로그램은 보통 위에서 아래 왼쪽에서 오른쪽 순서로 실행됩니다.

따라서 이 프로그램의 흐름을 제어할 수 있는 문법이 제어문입니다.

제어문의 종류

(1) 조건문 : 정해진 조건에 따라 흐름을 제어하는 문법

(2) 반복분 : 정해진 조건에 따라 흐름을 반복하는 문법

 

1) 조건문이란?

조건문이란 조건에 따라 각기 다르게 실행 하도록 만들어 놓은 제어문을 뜻합니다.

 

2) 조건문의 종류

1) if문

2) switch문

저희는 이 두 가지 조건문 중에 오늘은 if문에 대해 알아보겠습니다.

 

if문

 

if문에는 if, else if , else라는 키워드가 사용됩니다.

if문은 만약에 조건이 참이라면 ~ 실행문을 실행해라 라는 기능을 수행합니다.

 

if문의 구조

if(조건식){

조건식이 참일 때 실행할 명령;

}

if ( ) 괄호 안에는 조건식이 들어갈 수 있습니다.

if문 예시_1

public class If_sentence {

	public static void main(String[] args) {
		int a=5;
		if(a>3) { //a>3 a가 3보다 크냐는 조건식
			System.out.println("a는 3보다 큽니다."); //조건식이 참이라면 실행할 실행문
		}
		System.out.println("검사가 끝났습니다.");
	}

}

코드를 살펴보면 a=5라는 변수가 있고

if문의 ( )괄호 즉, 조건식은 a>3a가 3보다 크냐라는 조건식이 있습니다.

5>3즉, true이죠 따라서 if문 { } 안에 있는 실행문을 실행하게 되는 것입니다.

만일 a가 3보다 작은 정수였다면 안에 있는 실행문을 실행하지 않게 되겠죠

출력 결과

if문 안에 있는 조건식이 참이기 때문에 if문 안에 { } 에있는 실행문을 실행할 수 있게 되는 것이지요

if문 예시_2

public class If_true {

	public static void main(String[] args) {
		
		if(true) {
			System.out.println("참입니다.");
		}
	}

}

if문의 조건식 안에는 boolean형도 들어갈 수 있습니다.

if문의 조건식 안에는 꼭 비교식만이 아닌 논리형도 들아갈 수 있다는 것을 알 수 있게 되는 것이지요.

if-else문

if-else문은

if문 뒤에 오는 키워드입니다.

if문=="만약에 조건이 참이라면~"

else 만일 if문의 조건식이 참이 아니라면 ~실행문을 실행하라 라는 의미를 갖고 있습니다.

 

if-else문의 구조

if(조건식){

조건식이 참 일때 실행할 명령;

}

else{ 조건식이 거짓일 때 실행할 명령어  

}

if-else 예시

public class If_else {

	public static void main(String[] args) {
		
		int age=15;
		if(age>19) {
			System.out.println("성인입니다.");
			System.out.println("성인 요금이 적용됩니다.");
		}
		else {
			System.out.println("청소년입니다.");
			System.out.println("청소년 요금이 적용됩니다.");
		}
		System.out.println("결제를 진행해 주세요");

	}

}

 

위의 예시를 보시면 else의 역할을 확실히 알 수 있을 것입니다.

정수형 변수를 담을 수 있는 age는 15를 담고 있습니다.

if(age>19)의 조건식은 거짓이겠죠 15는 19보다 작기 때문에 거짓입니다.

따라서 if문 안의 실행문은 실행되지 않습니다.

자 여기서 실행되는 문장이 else 안에 있는 실행문입니다.

따라서 else안에 있는 실행문이 출력되겠죠

출력 결과

예상대로 else안에있는 실행문이 실행됐네요. ㅎㅎ

if-else if문

else if문은 "만약에 if조건식이 참이 아닌 거짓이라면

else if로 와서 조건식을 비교해줘 참이라면 else if문의 실행문을 실행해줘 라는 의미를 갖고 있습니다.

 

else if문 구조

if(조건1){

조건1이 참일 때 실행할 명령;

}

else if(조건2){

조건1이 거짓이고 조건2가 참일 때 실행할 명령;

}

else if문 예시

public class If_else_if {

	public static void main(String[] args) {
		Scanner sc= new Scanner(System.in);
		int age;
		System.out.println("나이:");
		age=sc.nextInt();
		if(age>19) {
			System.out.println("성인입니다.");
			System.out.println("성인 요금이 적용됩니다.");
		}
		else if(age>13) { //13<age<19
			System.out.println("청소년입니다.");
			System.out.println("청소년 요금이 적용됩니다.");
		}
		else if(age>8) {
			System.out.println("어린이입니다.");
			System.out.println("어린이 요금이 적용됩니다.");
		}
		else {
			System.out.println("유아입니다.");
			System.out.println("유아 요금이 적용됩니다.");
		}
		System.out.println("결제를 진행해 주세요.");
	}
}

1.

age=sc.nextInt(); => 우선 Scanner를 사용해 사용자에게 age값을 받습니다.

2.

if(age>19) {
			System.out.println("성인입니다.");
			System.out.println("성인 요금이 적용됩니다.");
		}

=> 사용자에게 입력받은 값 즉, age가 19보다 크다면 if문안에 있는 실행문을 실행합니다.

3.

else if(age>13) { //13<age<19
			System.out.println("청소년입니다.");
			System.out.println("청소년 요금이 적용됩니다.");
		}

=> 만일 age가 if문의 조건식에 거짓이라면 밑으로 내려와 else if문의 조건식 즉, age>13과 비교합니다. 만일 조건식이 참이라면 else if 안에있는 실행문을 실행하고 아니라면 밑에 있는 또 다른 else if문의 조건식과 비교합니다.

4.

else if(age>8) {
			System.out.println("어린이입니다.");
			System.out.println("어린이 요금이 적용됩니다.");
		}

=> 동일하게 조건식을 비교하고 참이면 실행문 실행 거짓이라면 밑으로 

5.

else {
			System.out.println("유아입니다.");
			System.out.println("유아 요금이 적용됩니다.");
		}

=> 마지막인 else의 역할은 위의 모든 조건식이 해당하지 않을 경우 실행하는 실행문입니다.

출력 결과

순서대로 20,14,9,4를 넣었을 때

14

9

4

중첩 if문

중첩 if문은 말 그대로 if문 안에 if문이 있는 것입니다.

if문이 참이면 실행문을 실행하고 또 다른 조건식을 넣고 싶을 때 사용합니다.

중첩 if문 구조

if(조건1){

조건1이 참일 때 실행할 명령;

if(조건2){

조건2가 참일 때 실행할 명령;

}

}

중첩 if문 예시

```java
public class If_if {

	public static void main(String[] args) {
		String id,password;
		String User_id="java";//id값 설정
		String User_password="abc123"; //password값 설정
		
		
		Scanner input= new Scanner(System.in);
		
		System.out.println("아이디를 입력해주세요:");
		id=input.nextLine();
		if(id.equals(User_id)) { // 문자열 비교함수 인equals메소드를 사용해 아이디 값 비교 
			System.out.println("id 일치!"); //일치할시 실행될 실행문
			System.out.println("비밀번호를 입력해주세요:");
			password=input.nextLine();
			if(password.equals(User_password)) { //password를 입력받고 비교
				System.out.println("password일치!"); //조건식이 참이면 실행
				System.out.println("로그인 성공");
			}
			else { //password불일치시 실행될 실행문
				System.out.println("비밀번호 불일치!!");
			}
		}
		else {
			System.out.println("아이디 불일치!!"); //id 값이 불일치할 시 실행될 실행문
	}

}
```

위의 코드는 아이디와 비밀번호를 확인하는 코드입니다.

중첩 if문을 쓰기에 너무나도 알맞은 예시인 것 같네요.

위의 내용은 대부분 아는 내용일 테지만 중요한 부분만 짚고 넘어가자면

첫 번째 if문에서 User_id를 비교했는데 거짓일 경우 안에 있는 두 번째 if문 까지 가지 않고 바로 바깥의 else로 나오게 됩니다.

따라서 아이디와 비밀번호를 확인할 수 있는 것이지요.

 

자 이상으로 오늘 제어문 안의 조건문 조건문 안의 if문에 대해서 알아보았습니다.

다음 포스팅은 switch문으로 찾아뵙겠습니다.

이상 글 읽어주셔서 감사합니다~

Comments