조건문 of 제어문 (if, switch)

2022. 8. 16. 11:46Java 프로그램

728x90

오늘은 제어문 중 조건문인 if와 switch를 공부해 보겠습니다.

 

일단 제어문이 필요한 이유는 코드의 실행 흐름을 개발자가 원하는대로 제어할 수 있음을 위해 사용합니다.

코드가 실행되는 중간에 어떤 코드를 뛰어 넘을수 있고 혹은 원하는 과정에 따라 원하는 결과를 도출할수도 있기 때문에 필수적인 요소입니다. 또한 코딩을 할 때 많이 쓰이기도 하기 때문에 오늘 면밀하게 알아 보겠습니다.

 

조건문에는 두가지가 있습니다. 바로 if문과 switch문 인데요 if문 부터 알아보겠습니다.

 

If문

if(조건식){

실행할 코드

}

if문의 형식은 위와 같습니다. if다음의 괄호안에 조건식을 입력합니다. 만약 이 조건식의 논리연산이 TRUE라면 밑에 있는 실행할 코드가 실행되고 FALSE라면 실행되지 않고 건너 뛰게 됩니다.

public class Operator {

	public static void main(String[] args) {
		int a=10;
		
		if(a>1) {
			System.out.println("a는 1보다는 큰 숫자입니다.");
		}

	}

}

if문 예시 콘솔

if문의 조건식에서는 a가 1보다 큽니까? 라고 조건을 걸었습니다. 제가 정수형 타입인 a변수에 10의 값을 넣어놨습니다.

그렇다면 조건식은 true기 때문에 if문 안에있는 출력코드가 실행이 되어 console창에 나오는것을 확인할 수 있습니다.

 

If~else문

if문은 else라는 것이 존재합니다. 조건식이 아니라면 실행할 코드를 지정해주는 건데 바로 예시로 보겠습니다.

public class Operator {

	public static void main(String[] args) {
		int a=10;
		
		if(a>11) {
			System.out.println("a는 11보다는 큰 숫자입니다.");
		}else {
			System.out.println("a는 11보다 작은 숫자입니다.");
		}

	}

}

if~else 콘솔

if의 조건식은 a>11입니다. 제가 a의 값을 10으로 정해놨기 때문에 if의 조건식은 false가 나옵니다. 그렇다면 if문 안에 있는

실행 코드는 실행되지 않을거라는걸 알수 있을겁니다. 그 다음 else안에 있는 "a는 11보다 작은 숫자입니다." 가 출력되는 것을 콘솔창에서 확인 할 수 있습니다.

if~else를 통해 복수의 조건식을 둘 수 있고 중첩 if문을 사용할 수 도 있습니다.

 

import java.util.Scanner; //입력을 받기위해 Scanner를 위한 import

public class Operator {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);		//입력을 위한 Scanner사용
		
		System.out.println("a를 입력하세요");
		int a = input.nextInt();		//a의 값을 console창에서 입력받음
		
		if(a>6) {
			if(a>9) {
				if(a>11) {
					System.out.println("a가 11보다 큰 숫자입니다.");
				}else {
					System.out.println("a가 11보다는 작고 9보다 큰숫자 입니다.");
				}
			}else {
				System.out.println("a가 6보다는 크고 9보다는 작은 숫자입니다.");
			}
		}else {
			System.out.println("a는 6보다 작은 숫자입니다.");
		}

	}

}

if문을 3개 중첩 시킨 코드입니다. a가 6보다크고 9보다도 크며 11보다 크면 a>11의 조건식을 가진 if문의 코드를 실행하고, 만약 a>11이 false라면  첫번째 else문을 출력합니다. 9보다 작은 숫자가 입력 되면 두번째 else문이, 6보다도 작은 숫자를 입력하면 마지막 else문이 실행되는 형식입니다.

이제 이것과는 조금 다른 형태인 else if~문을 보겠습니다.

import java.util.Scanner;

public class Operator {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.println("a를 입력하세요");
		int a = input.nextInt();
		
		if(a>100) {
			System.out.println("a는 100보다 큰 숫자 입니다.");
		}else if(a<100) {
			System.out.println("a는 100보다 작은 숫자 입니다.");
		}else if(a==100) {
			System.out.println("a는 100입니다.");
		}

	}

}

else if문을 통해 각각 다른 조건에 true일 때 실행할 코드를 다르게 기입한 것을 실행한 결과 입니다.

이제 switch문을 알아보도록 하겠습니다.

 

switch문

 

switch(변수){

case 1: 

      ~~~~~

case 2 :

      ~~~~~~

}

의 형식입니다. switch문은 조건식이라기 보단 변수의 값을 나눠서 실행할 코드를 지정해주는 방식이라고 볼수 있습니다.

 

public class Operator {

	public static void main(String[] args) {
		int diceNumber = (int) (Math.random()*6) +1; // diceNumber는 1~6까지의 랜덤숫자
			//(int)는 실수형태인 Math.random()*6을 정수형으로 바꾸기 위한 강제 형변환
		
		System.out.println("diceNumber = " + diceNumber);
		
		switch(diceNumber) {
		case 1 :	// if(diceNumber ==1)이라는 것과 같다.
			System.out.println("주사위 1이 나왔습니다.");
			break;
		case 2 :	// if(diceNumber ==2)이라는 것과 같다.
			System.out.println("주사위 2이 나왔습니다.");
			break;
		case 3 :	// if(diceNumber ==3)이라는 것과 같다.
			System.out.println("주사위 3이 나왔습니다.");
			break;
		case 4 :	// if(diceNumber ==4)이라는 것과 같다.
			System.out.println("주사위 4이 나왔습니다.");
			break;
		case 5 :	// if(diceNumber ==5)이라는 것과 같다.
			System.out.println("주사위 5이 나왔습니다.");
			break;
		//case 6:
			default: //else와 같은 역할
				System.out.println("주사위 6이 나왔습니다.");
				break;
		}

	}

}

switch문을 이용하여 실행 할 때마다 주사위를 던진것 처럼 1~6까지의 랜덤 숫자가 변수에 입력되도록 하였습니다.

그 후 switch문에서 주사위 숫자가 각가 다른 상황에 따라 출력하는 코드가 다르게 case로 나누었고 마지막은 else처럼

Default를 사용하여 마무리하였습니다.

switch문은 항상 case가 끝날때마다 break를 입력하여 switch문을 나와야 합니다.

 

오늘은 제어문, 그 중에서도 조건문을 알아봤습니다. 부족하지만 감사합니다.

반응형

'Java 프로그램' 카테고리의 다른 글

문자열 : String  (0) 2022.08.18
반복문(for, do-while, while)2 +(break, continue)  (0) 2022.08.17
반복문(for, do-while, while)  (0) 2022.08.17
자바의 연산자  (0) 2022.08.16
자바의 시작: 변수와 타입 및 escape문자  (0) 2022.08.10