CS/알고리즘

[알고리즘] 01. Java 기초 알고리즘 - 조건문

WooZzing 2024. 3. 27. 15:11

 

 

 

 

 

안녕하세요🖐️

 

이번시간에는 기초 알고리즘 중 하나인 조건문에 대해 간단히 알아보려고 합니다~

 

 

 

 


조건문이란?

프로그램의 흐름을 제어하는 제어문입니다.

 

사용자가 19세 이상인 경우만 사용할 수 있게 하고, 19세 미만인 경우는 사용 못하게 하려면 어떻게 해야 할까요? 사용자의 나이를 확인하고, 나이에 따라 처리를 다르게 해야 합니다. 이럴 때 사용할 수 있는 것이 바로 조건문입니다.

 

조건문의 종류엔 여러 가지가 있습니다.

 

여기서 진행할 조건문은 if else 문입니다. 가장 많이 사용되는 조건문으로 어떻게 사용되는지 배워보겠습니다.

 

 

 

 


if - else 문

if문은 프로그래밍에서 가장 기본적인 조건문입니다. 조건이 참(true)인지 거짓(false)인지에 따라 다른 코드 블록을 실행하도록 제어합니다. if문은 단독으로 사용될 수 있으며, else와 함께 또는 else if를 이용하여 여러 조건을 체크할 수 있습니다.

 

- 실습 예제 -

public class Practice01 {

	public void numberCheck(int a) {
		if(a > 0) {
			// a 는 0보다 크다 -> 양수
			System.out.println("입력된 수 " + a + " 은 양수 입니다.");
		} else if (a < 0) {
			// a 는 0보다 작다 -> 음수
			System.out.println("입력된 수 " + a + " 은 음수 입니다.");
		} else {
			// a 는 0보다 크지도 작지도 않다 -> 0
			System.out.println("입력된 수 " + a + " 은 0 입니다.");
		}
	}

  	public static void  main(String[] args){
   		// Practice01 클래스 인스턴스 생성 
		Practice01 pre = new Practice01();
	    
		// Practice01 클래스의 numberCheck 메소드 접근
		pre.numberCheck(20);
		pre.numberCheck(-20);
		pre.numberCheck(0);
	}
    
}

- 출력 결과 -

입력된 수 20 은 양수 입니다.
입력된 수 -20 은 음수 입니다.
입력된 수 0 은 0 입니다.

위 코드는 입력한 정숫값이 양수인지 음수인지 0인지 판단하여 출력하는 프로그램입니다.

 

해당 조건문은 다음과 같이 처리됩니다.

조건문 처리 단계1

 

순서도를 통해 설명을 진행하겠습니다.

조건문 처리 단계2
변수 n의 출력값 판단

변수 n이 0보다 크면 ①, n이 0보다 작으면 ②, 둘 다 아니면 ③이 실행됩니다. ①, ②, ③ 중 한 가지는 반드시 실행되며, 두 가지 이상이 실행되거나 하나도 실행되지 않는 경우는 없습니다.

 

 

 

 


실습 진행

 

● 최댓값 구하기

Q. 세 개의 다른 정수가 주어졌을 때, 최댓값은?

A. 하나의 정수를 최댓값으로 지정 후, 남은 두 개의 정수와 비교해 보겠습니다.

 

- 실습 예제 -

public class Practice01 {

	// 최댓값 구하는 메소드
	public int maxNumber(int a, int b, int c) {
		// a가 최댓값이라 생각하고 max에 셋팅
		int max = a;

		// max보다 b가 크면 max에 b 셋팅
		if(max < b)
			max = b;

		// max보다 c가 크면 max에 c 셋팅
		if(max < c)
			max = c;

		return max;
	}

	public static void  main(String[] args){
		// Practice01 클래스 인스턴스 생성 
		Practice01 pre = new Practice01();

		// Practice01 클래스의 maxNumber 메소드 접근
		int max = pre.maxNumber(1, 2, 3);

		System.out.println("최댓값은 " + max + " 입니다.");
	}
    
}

- 출력 결과 -

최댓값은 3 입니다.

 

 

 

 

● 최솟값 구하기

Q. 세 개의 다른 정수가 주어졌을 때, 최솟값은?

A. 하나의 정수를 최솟값으로 지정 후, 남은 두 개의 정수와 비교해 보겠습니다.

 

- 실습 예제 -

public class Practice01 {
	// 최솟값 구하는 메소드
	public int minNumber(int a, int b, int c) {
		// a가 최솟값이라 생각하고 min에 셋팅
		int min = a;
				
		// min보다 b가 작으면 min에 b 셋팅
		if(min > b)
			min = b;
				
		// min보다 c가 작으면 min에 c 셋팅
		if(min > c)
			min = c;
				
		return min;
	}
    
	public static void  main(String[] args){
		// Practice01 클래스 인스턴스 생성 
		Practice01 pre = new Practice01();
        
		// Practice01 클래스의 minNumber 메소드 접근
		int min = pre.minNumber(1, 2, 3);
        
		System.out.println("최솟값은 " + min + " 입니다.");
	}
}

- 출력 결과 -

최솟값은 1 입니다.

 

 

 

 

● 중앙값 구하기

Q. 세 개의 다른 정수가 주어졌을 때, 중앙값은?

A. a 정수를 b 정수와 대소를 비교한 후, 남은 c 정수와 비교하고 남은 b 정수와, c 정수를 비교해 보겠습니다.

 

- 실습 예제 -

public class Practice01 {
	// 중앙값 구하는 메소드
	public int midNumber(int a, int b, int c) {
		// 중앙값을 저장 할 변수
		int mid = 0;
		
		if(a > b) {
			if(a < c) {
				// b < a < c 의 상황
				mid = a;
			} else if(b > c) {
				// c < b < a 의 상황
				mid = b;
			} else {
				// b < c < a 의 상황
				mid = c;
			}
		} else {
			if(b < c) {
				// a < b < c 의 상황
				mid = b;
			} else if(a > c) {
				// c < a < b 의 상황
				mid = a;
			} else {
				// a < c < b 의 상황
				mid = c;
			}
		}
		
		return mid;
	}
    
	public static void  main(String[] args){
		// Practice01 클래스 인스턴스 생성 
		Practice01 pre = new Practice01();
        
		// Practice01 클래스의 midNumber 메소드 접근
		int mid = pre.midNumber(1, 2, 3);
        
		System.out.println("중앙값은 " + mid + " 입니다.");
	}
}

- 출력 결과 -

중앙값은 2 입니다.

 

 

 

 

 

 

 

 

 

이상으로 알고리즘 중 기초인 조건문에 대해 알아보는 시간을 마치겠습니다!

 

읽어주셔서 감사합니다 😊

 


소스 코드 바로가기

소스 코드 바로가기