[Java/자바]제어문(1)_if,else if, else
안녕하세요 오늘은 제어문에 대해 알아보고
제어문 중의 하나인 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문으로 찾아뵙겠습니다.
이상 글 읽어주셔서 감사합니다~
