일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Python
- 딕셔너리
- BST
- 소행성
- 파이썬
- 회로이론
- 최단 경로
- 코드업
- 이진탐색트리
- 선적분
- 델
- 강화학습
- 신경망
- 벡터해석
- 함수
- Class
- 자료형
- dictionary
- 2P1L
- 딥러닝
- cURL
- auto-encoder
- 자바
- java
- 피보나치 수열
- 계단 오르기
- 벡터 해석
- 미분 방정식
- Asteroid RL
- 백트래킹
- Today
- Total
Zeta Oph's Study
[Java - 기초 문법] 05. 조건문 : if문 & switch문 본문
https://crane206265.tistory.com/59
[Java - 기초 문법] 04. 형변환 (type conversion / type casting)
https://crane206265.tistory.com/58 [Java - 기초 문법] 03. 문자열(String) https://crane206265.tistory.com/57 [Java - 기초 문법] 02. 자료형과 변수 & 상수 https://crane206265.tistory.com/56 [Java - 기초 문법] 01. 출력 정말 오랜만
crane206265.tistory.com
이 글에서는 Java의 조건문에 대해 알아보겠습니다.
이 글에서는 조건문에 대해, 다음 글에서는 반복문에 대해 다룰 예정인데, 이들은 "조건"에 맞으면 코드가 실행되게 됩니다. 즉, boolean에 대해 다루게 되므로, 많이 사용하는 연산에 대해 먼저 짚고 넘어가겠습니다.
먼저 비교 연산자는 아래와 같이 정리할 수 있습니다.
x < y | x가 y보다 작다 | x <= y | x가 y보다 작거나 같다 |
x > y | x가 y보다 크다 | x >= y | x가 y보다 크거나 같다 |
x == y | x와 y가 같다 | x != y | x와 y가 같지 않다 |
수학적으로는 120 < 230 < 450 처럼 여러개의 부등호/등호로 연결된 부등식/등식은 맞는 표현이지만, Java에서는 그렇지 않습니다. 한 번에 하나의 비교 연산자만 사용 가능합니다.
and, or, not 연산자는 수학에서 말하는 논리 연산자의 역할을 합니다. 여러개의 boolean을 이어줄 수 있으며, 위의 여러개의 부등호 경우도 and, or, not 연산자를 이용하여 구현할 수 있습니다.
x && y | and 연산자 : x와 y가 모두 참이면 참 |
x || y | or 연산자 : x 또는 y가 참이면 참 |
!x | not 연산자 : x가 거짓이면 참 |
and, or, not 연산자는 여러개를 이어서 쓸 수 있습니다. 다만 이들을 섞어서 사용한다면 괄호로 묶어 연산 순서를 지정해주는 것이 좋습니다.
public class Test {
public static void main(String[] args) {
int a = 123;
double b = 2.718;
char c = 65;
System.out.println(!(a < b) && b < c || a==b);
}
}
TERMINAL
true
if문
if문은 대표적인 조건문으로, 조건이 맞으면 아래 코드를 수행합니다. 구조는 다음과 같습니다.
if (condition) {
...
}
조건문도 결국은 boolean을 반환하는 코드이므로, 조건(condition)에는 boolean형이 들어감을 알 수 있습니다.
else와 else if는 아래와 같이 사용합니다.
if (condition_1) {
...
}
else if(condition_2) {
...
}
else if(condition_3) {
...
}
else {
...
}
만약 조건문 안의 내용이 간단하다면, 중괄호{}를 생략하고 한 줄로 적을수도 있습니다. (저는 이걸 굉장히 싫어하지만, 제 짝궁은 이것만을 고집합니다)
if (condition_1)
...
else if(condition_2)
...
else if(condition_3)
...
else
...
Java의 조건문 역시 다른 언어의 것과 마찬가지로 위에서부터 순서대로 실행됩니다. 그렇기 때문에 같은 조건문이더라도 else if 순서를 잘 조정하면 오류를 막을수도 있고, 코드를 편하게 짤 수도 있습니다.
예제) 점수에 따른 등급 출력
public class Test {
public static void main(String[] args) {
int score = 85;
char 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.printf("Grade : %c", grade);
}
}
TERMINAL
Grade : B
switch/case문
switch/case문은 조금 더 일정한 형식이 정해진 조건문입니다. if문은 조건의 형식을 자유롭게 지정해줄 수 있었지만, switch/case문은 입력값이 있고, 그 입력값과 일치하는 값의 case의 코드를 실행하는 형태입니다.
switch (condition) {
case value1:
...
case value2:
...
}
위의 형태가 기본 형태입니다.
모든 case에 해당이 안 되었을 때 수행할 코드를 지정해주기 위해서는 default를 사용합니다. 또한 switch/case문은 if문과는 달리 위의 case에 해당이 되어서 코드가 실행이 되었어도 기본적으로 아래쪽 case도 모두 검사해보는 형태입니다. 따라서 중간중간에 break를 심어주어 switch문을 종료할 수 있니다.
switch (condition) {
case value1:
...
break;
case value2:
...
break;
...
default:
...
}
예제) 3의 배수 판별
public class Test {
public static void main(String[] args) {
int num = 157;
switch (num%2) {
case 0:
System.out.printf("num %d = 3n", num);
break;
case 1:
System.out.printf("num %d = 3n+1", num);
break;
case 2:
System.out.printf("num %d = 3n+2", num);
break;
default:
System.out.println("Error");
}
}
}
TERMINAL
num 157 = 3n+1
이렇게 if문과 switch/case문에 대해 알아보았습니다. 다음 글에서는 반복문에 대해 다루어 보도록 하겠습니다.
'프로그래밍 > Java' 카테고리의 다른 글
[Data Structure (Java)] Function (함수) (1) | 2024.03.18 |
---|---|
[Java - 기초 문법] 06. 반복문 : while문 & for문 & for each문 (2) | 2024.02.10 |
[Java - 기초 문법] 04. 형변환 (type conversion / type casting) (2) | 2024.01.26 |
[Java - 기초 문법] 03. 문자열(String) (2) | 2024.01.26 |
[Java - 기초 문법] 02. 자료형과 변수 & 상수 (2) | 2024.01.22 |