[Java] 제어문_조건문

RyECODING·2022년 11월 1일
0

Java 기초

목록 보기
6/12

< ìf 문 >

if (조건식) {
	//조건식이 참이라면 실행되는 블록.
}

if문의 소괄호 안에는 boolean 값으로 평가될 수 있는 조건식을 넣어주고, 중괄호 안의 실행 블록에는 조건식이 참일 때 실행하고자 하는 코드를 넣어주면 된다.

cf) '블록(block)'
	: 중괄호 {} 를 이용해 여러 문장을 하나의 단위로 묶을 수 있다.

< if...else 문 >

if(조건식1) {
	//조건식1이 참이라면, 실행되는 블록.		
} 
else if (조건식2) {
	//조건식1이 참이 아니면서 조건식2가 참일 때, 실행되는 블록.
} 
else {
	//조건식1과 2가 모두 참이 아닐 때, 실행되는 블록.
	//else문은 생략 가능.
}

if...else 문은 조건식의 결과에 따라 실행블록을 선택한다.

1) if문의 조건식이 true
-> 해당 블록이 실행.
2) if문의 조건식이 false
-> 다음으로 넘어가 else if 문의 조건식을 검사.
3) else if문모든 조건식이 false
-> 나머지 경우를 의미하는 else 블록 실행.


< Switch 문 >

if 문과 마찬가지로 조건 제어문.

예시

package com.company;

import java.util.Scanner;

public class Main {
    static Scanner myInput = new Scanner(System.in);
    public static void main(String[] args) {
        String dice = myInput.nextLine(); //주사위 번호 입력

        switch (dice) {
            case "1":
                System.out.println("1번");
                break; //다음 case를 실행하지 않고, switch문 탈출!
            case "2":
                System.out.println("2번");
                break;
            case "3":
                System.out.println("3번");
                break;
            case "4":
                System.out.println("4번");
                break;
            case "5":
                System.out.println("5번");
                break;
            case "6":
                System.out.println("6번");
                break;
            default: //switch문의 괄호 안 값과 같은 값이 없으면, 여기서 실행문 실행
                System.out.println("없는 숫자! " + dice);
                break;
        }
    }
}

switch문은 if문처럼 조건식이 true일 경우, 블록 내부의 실행문을 실행하는 것이 아니라, 변수가 어떤 값을 갖느냐에 따라 실행문 선택

if문은 조건식의 결과가 truefalse 두 가지 밖에 없기 때문에 경우의 수가 많아질수록 if-else를 반복적으로 추가해야 하기 때문에 코드가 복잡해진다.
그러나 switch문은 변수의 값에 따라서 실행문이 결정되기 때문에 같은 기능의 if문보다 코드가 간결하다.

witch문은 괄호 안의 값과 동일한 값을 갖는 case로 가서 실행문을 실행한다.
그러나 만약 괄호 안의 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행한다.
(default생략 가능하다.)

! 주의할 점
break문을 작성하지 않으면 switch문을 탈출하지 않고 모든 case문을 실행하게 되어 원하는 방식으로 동작하지 않는다.(이를 fall through라고 한다).

switch문에는 int 뿐만 아니라, char 타입 변수도 사용가능하고, 자바 7부터는 String 타입의 변수도 올 수 있다.

profile
례코드

0개의 댓글