자바 조건문 기초 | if문, switch문에 대해 알아보자

JAVA 조건문을 알아보자
JAVA 조건문을 알아보자

 

자바 조건문 기초

1. 자바 조건문의 개요

1.1.if문

자바 프로그래밍에서 조건문은 프로그램의 흐름을 제어하는 중요한 요소입니다. 조건문은 특정 조건이 참(true)인지 거짓(false)인지를 판단하여 해당 조건에 따라 실행할 코드 블록을 결정합니다. if문은 가장 기본적인 조건문 중 하나이며, 주어진 조건식이 참인 경우에만 해당 코드 블록을 실행합니다.

2. if문에 대한 자세한 내용

2.1.if문의 기본 구조

if문은 다음과 같은 기본적인 구조로 이루어져 있습니다.

if (조건식) {
// 조건식이 참일 경우 실행할 코드
}

조건식은 반드시 참 또는 거짓을 판단할 수 있는 식이어야 합니다. 조건식이 참일 경우 중괄호({}) 안에 있는 코드 블록이 실행되고, 거짓일 경우 해당 코드 블록은 건너뜁니다.

2.2.논리 연산자를 사용한 다중 조건문

if문은 단순히 참 또는 거짓을 판단하는 것뿐만 아니라, 여러 개의 조건을 연결하여 다른 결과를 얻을 수도 있습니다. 이때 논리 연산자를 사용하여 여러 조건을 결합할 수 있습니다.

논리 연산자는 &&(AND), ||(OR), !(NOT) 등이 있으며, 이들을 조합하여 if문에서 다중 조건을 처리할 수 있습니다. 예를 들어, 다음과 같이 두 개의 조건식을 && 연산자로 결합하여 처리할 수 있습니다.

if (조건식1 && 조건식2) {
// 조건식1과 조건식2가 모두 참일 경우 실행할 코드
}

2.3.중첩 if문

if문은 다른 if문 안에 중첩하여 사용할 수도 있습니다. 이때는 바깥쪽 if문의 조건식이 참일 경우에만 안쪽 if문이 실행됩니다. 중첩 if문을 사용하여 상세한 조건 체크를 할 수 있습니다.

예를 들어, 다음과 같이 중첩 if문을 사용하여 다양한 조건을 처리할 수 있습니다.

if (조건식1) {
if (조건식2) {
// 조건식1과 조건식2가 모두 참일 경우 실행할 코드
} else {
// 조건식1은 참이지만 조건식2가 거짓일 경우 실행할 코드
}
} else {
// 조건식1이 거짓일 경우 실행할 코드
}

3. switch문에 대한 자세한 내용

3.1.switch문의 기본 구조

switch문은 if문과 유사한 조건문으로, 주어진 변수의 값에 따라 다른 코드 블록을 실행하는 역할을 합니다. switch문의 기본 구조는 다음과 같습니다.

switch (변수) {
case 값1:
// 변수의 값이 값1과 일치할 경우 실행할 코드
break;
case 값2:
// 변수의 값이 값2와 일치할 경우 실행할 코드
break;
// …
default:
// 변수의 값이 어떤 case에도 일치하지 않을 경우 실행할 코드
}

변수는 switch문에서 판별할 값을 나타내며, case는 변수의 값과 비교할 값입니다. 변수의 값에 해당하는 case가 있을 경우 해당 case의 코드 블록이 실행되고, break 키워드를 만나면 switch문을 종료합니다. 만약 어떤 case에도 일치하지 않는 경우 default 블록의 코드가 실행됩니다.

4. 조건문의 활용 예시

4.1.조건문을 사용한 문자열 비교

자바에서는 조건문을 사용하여 문자열을 비교할 수 있습니다. 문자열을 비교할 때에는 == 연산자를 사용하지 않고, equals() 메서드를 사용해야 합니다. 예를 들어, 다음과 같이 문자열을 비교하는 예시가 있습니다.

String str1 = “Hello”;
String str2 = “World”;

if (str1.equals(str2)) {
// 문자열이 일치할 경우 실행할 코드
} else {
// 문자열이 일치하지 않을 경우 실행할 코드
}

4.2.조건문을 활용한 숫자 판별

조건문은 숫자를 판별할 때에도 유용하게 사용될 수 있습니다. 예를 들어, 다음과 같이 양수, 음수, 0인지 판별하는 코드가 있습니다.

int num = 10;

if (num > 0) {
// 양수일 경우 실행할 코드
} else if (num < 0) {
// 음수일 경우 실행할 코드
} else {
// 0일 경우 실행할 코드
}

4.3.조건문을 이용한 반복문 제어

조건문은 반복문과 함께 사용하여 반복 횟수를 제어하는데도 사용됩니다. 예를 들어, 다음과 같이 조건에 따라 반복문을 종료하는 코드가 있습니다.

for (int i = 0; i < 10; i++) {
if (i == 5) {
break;
}
// 반복문을 실행할 코드
}

위의 예시에서는 i가 5일 때 반복문을 종료하고, 그 외에는 반복문을 계속 실행합니다.

이처럼 자바의 조건문은 프로그램의 흐름을 제어하는 중요한 도구로 사용됩니다. if문과 switch문을 잘 활용하여 여러 가지 상황에 대처할 수 있는 코드를 작성해야 합니다. 참고로 자바 조건문에서 중요한 포인트는 조건식을 올바르게 작성하고, 코드 블록 안에서 적절한 조치를 취하는 것입니다. 일상적인 프로그래밍에서 조건문을 다양하게 활용해 보시기 바랍니다.

5. 조건문과 논리 연산자

5.1. 논리 연산자의 종류

논리 연산자는 주어진 조건을 판단하여 참(True)이나 거짓(False)을 반환하는 역할을 수행합니다. 이때 논리 연산자에는 다음과 같은 종류가 있습니다.

– && (논리곱 연산자) : 좌항과 우항이 모두 참일 때만 참을 반환합니다.
– || (논리합 연산자) : 좌항과 우항 중 하나라도 참이면 참을 반환합니다.
– ! (부정 연산자) : 주어진 조건의 반대 값을 반환합니다.

5.2. 논리 연산자의 우선순위

논리 연산자의 우선순위는 &&가 ||보다 우선합니다. 따라서 표현식 내에 여러 개의 논리 연산자가 포함되어 있다면 &&가 먼저 계산됩니다.

5.3. 조건식에 논리 연산자 사용하기

조건문에서 논리 연산자를 사용하여 여러 조건을 효율적으로 판단할 수 있습니다. 예를 들어, 다음과 같은 조건식을 생각해보겠습니다.

if (x > 0 && x < 10) {
// x가 0보다 크고 10보다 작을 때 실행되는 코드
}

위의 코드는 x 변수가 0보다 크고 10보다 작을 경우에만 실행됩니다. 이렇게 논리 연산자를 사용하면 두 개 이상의 조건을 함께 판단하고, 해당하는 조건에 맞는 코드 블록을 실행할 수 있습니다.

6. 상세한 예제로 배우는 조건문

6.1. 학생 성적을 평가하는 프로그램

이번 예제에서는 학생의 성적을 평가하는 프로그램을 작성해보도록 하겠습니다. 우선 다음과 같은 조건을 가정합니다.

– 성적이 90점 이상이면 “A” 학점
– 성적이 80점 이상이면 “B” 학점
– 성적이 70점 이상이면 “C” 학점
– 성적이 60점 이상이면 “D” 학점
– 성적이 60점 미만이면 “F” 학점

프로그램은 다음과 같이 작성할 수 있습니다.

int score = 85;
String grade;

if (score >= 90) {
grade = “A”;
} else if (score >= 80) {
grade = “B”;
} else if (score >= 70) {
grade = “C”;
} else if (score >= 60) {
grade = “D”;
} else {
grade = “F”;
}
System.out.println(“학점: ” + grade);

6.2. 사칙연산을 수행하는 계산기

다음 예제에서는 사용자로부터 입력받은 두 개의 숫자와 연산자를 통해 사칙연산을 수행하는 계산기 프로그램을 작성해보도록 하겠습니다. 사용자로부터 입력을 받은 후, 입력값에 따라 사칙연산을 수행하고 결과를 출력합니다.

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);

System.out.print(“첫 번째 숫자를 입력하세요: “);
int num1 = scanner.nextInt();

System.out.print(“두 번째 숫자를 입력하세요: “);
int num2 = scanner.nextInt();

System.out.print(“연산자를 입력하세요 (+, -, *, /): “);
char operator = scanner.next().charAt(0);

int result;

switch (operator) {
case ‘+’:
result = num1 + num2;
break;
case ‘-‘:
result = num1 – num2;
break;
case ‘*’:
result = num1 * num2;
break;
case ‘/’:
result = num1 / num2;
break;
default:
System.out.println(“잘못된 연산자입니다.”);
return;
}
System.out.println(“결과: ” + result);

6.3. 윤년을 판별하는 프로그램

다음 예제에서는 사용자로부터 입력받은 연도가 윤년인지 아닌지 판별하는 프로그램을 작성해보도록 하겠습니다. 윤년은 다음과 같은 조건을 만족합니다.

– 연도가 4로 나누어떨어지지만 100으로 나누어떨어지지 않을 경우 윤년입니다.
– 연도가 400으로 나누어떨어지는 경우에도 윤년입니다.

프로그램은 다음과 같이 작성할 수 있습니다.

Scanner scanner = new Scanner(System.in)

System.out.print(“연도를 입력하세요: “);
int year = scanner.nextInt();

boolean isLeapYear = false;

if (year % 4 == 0) {
if (year % 100 != 0 || year % 400 == 0) {
isLeapYear = true;
}
}

if (isLeapYear) {
System.out.println(year + “년은 윤년입니다.”);
} else {
System.out.println(year + “년은 윤년이 아닙니다.”);
}

7. 조건문의 효율적인 사용 방법

7.1. 코드 가독성을 높이는 기법

조건문을 작성할 때, 코드 가독성을 높이기 위해 몇 가지 기법을 활용할 수 있습니다. 첫째로, 조건문의 괄호를 사용하여 코드의 의도를 명확하게 드러낼 수 있습니다. 또한 들여쓰기를 통해 코드의 구조를 보기 쉽게 정렬하는 것도 좋은 방법입니다. 또한, 변수나 메소드의 이름을 명확하고 직관적으로 작성하여 코드를 이해하기 쉽게 만들 수 있습니다.

7.2. 복잡한 조건문을 단순화하기

조건문이 복잡해지면 코드의 가독성이 떨어질 수 있습니다. 이때는 복잡한 조건식을 단순화하여 가독성을 높이는 것이 좋습니다. 예를 들어, 중첩된 if-else 문 대신에 switch 문을 사용하거나, 여러 개의 조건을 논리 연산자로 결합하는 방법을 고려해볼 수 있습니다.

7.3. 조건문의 주의사항과 오류 방지 방법

조건문을 작성할 때 몇 가지 주의사항을 염두에 두어야 합니다. 첫째로, 조건문의 순서를 신중하게 정해야 합니다. 만약 여러 개의 조건문을 사용해야 하는 경우, 우선순위를 고려하여 조건문을 작성해야 정확한 결과를 얻을 수 있습니다. 둘째로, 조건문에서 변수의 값이 변경되지 않도록 주의해야 합니다. 변수의 값을 변경하는 코드가 조건문 이후에 작성되는 경우, 조건문의 결과가 예상과 다를 수 있습니다. 이를 방지하기 위해 변수의 값을 임시로 저장하거나, 조건문을 분리하여 독립적인 코드 블록으로 작성하는 것이 좋습니다.

이상으로 조건문과 논리 연산자에 대해 알아보았습니다. 조건문은 프로그램에서 여러 가지 상황에 따라 다른 동작을 수행할 수 있도록 도와주는 중요한 요소입니다. 논리 연산자는 조건식을 작성할 때 여러 개의 조건을 함께 판단할 수 있게 해주며, 조건문의 효율적인 사용 방법을 알고 있다면 보다 효율적이고 가독성 좋은 코드를 작성할 수 있을 것입니다.

Leave a Comment