[알고리즘] 01. Java 기초 알고리즘 - 조건문
안녕하세요🖐️
이번시간에는 기초 알고리즘 중 하나인 조건문에 대해 간단히 알아보려고 합니다~
조건문이란?
프로그램의 흐름을 제어하는 제어문입니다.
사용자가 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인지 판단하여 출력하는 프로그램입니다.
해당 조건문은 다음과 같이 처리됩니다.
순서도를 통해 설명을 진행하겠습니다.
변수 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 입니다.
이상으로 알고리즘 중 기초인 조건문에 대해 알아보는 시간을 마치겠습니다!
읽어주셔서 감사합니다 😊