티스토리 뷰
이제 드디어 프로그래밍의 구색을 갖춘 문법을 배울 차례!
조건문은 바로 직전 포스팅에서 살펴봤던 Boolean Type의 값을 사용한다.
즉, 어떤 조건에 대해서 True, False의 참, 거짓을 판단해서 어떤 조건에서는 이런 행동을 하고,
또 이런 때에는 저런 행동을 하고.. 처럼 컴퓨터가 동작하는 방법을 조건에 따라서 분기해주는 역할을 한다.
거두절미하고 기본적인 형태를 우선 살펴보자.
if ~ else
public class Conditional {
public static void main(String[] args) {
if(//조건){
System.out.println("조건이 True일 때 출력됩니다.");
} else {
System.out.println("조건이 False일 때 출력됩니다.");
}
System.out.println("조건에 상관없이 무조건 출력됩니다.");
}
}
if 절의 괄호 안에는 서두에 언급했던 것처럼 Boolean값만 들어갈 수 있다.
따라서 조건에는 결과 값으로 True or False를 리턴하는 비교 연산자들이 와야 한다.
따라서, 앞의 조건문의 결과가 True일 때는 위와 같이 바로 뒤에 따라오는 중괄호 안의 로직이 실행되고,
그렇지 않으면 else 바로 뒤의 중괄호 안의 로직이 실행된다. 이와 같은 중괄호를 if절, else 절이라고 부르기도 한다.
어떻게 쓰이는지 아래 예제를 보고 다음으로 넘어가자.
public class Conditional {
public static void main(String[] args) {
int n = 12;
System.out.println("프로그램을 시작합니다.");
if(n % 2 == 0){
System.out.println("n은 짝수");
} else {
System.out.println("n은 홀수");
}
System.out.println("프로그램을 종료합니다.");
}
}
[Out]
프로그램을 시작합니다.
n은 짝수
프로그램을 종료합니다.
n이라는 변수에 12를 할당하고 아래 if 조건문에서 2로 나눈 나머지가 0인지 조건을 걸었다.
12는 2로 나누었을 때 나머지가 0으로 if절을 타서 "n은 짝수" 라는 문장이 출력될 것이고, if절과는 상관없이
프로그램의 시작과 종료를 알리는 문장은 항상 출력될 것이다.
else if
그렇지만 흑백논리는 좋지않다. 둘 중 하나만 고르라는 것은 정말 힘든 일이 아닌가!
그래서 else if 절을 이용하면 조금 더 자유자재로 조건문을 제어할 수 있게 된다.
즉, 여러 조건을 걸어서 경우에 따라서 여러 로직을 수행할 수 있도록 더 많은 가지를 치는 방법이다.
public class Conditional {
public static void main(String[] args) {
if(//조건1){
System.out.println("조건1이 True일 때 출력됩니다.");
} else if (//조건2){
System.out.println("조건2가 True일 때 출력됩니다.");
} else if (//조건3){
System.out.println("조건3이 True일 때 출력됩니다.");
} else {
System.out.println("조건이 모두 False일 때 출력됩니다.");
}
System.out.println("조건에 상관없이 무조건 출력됩니다.");
}
}
아마 구성 형태를 보면 이해하기 쉬울 것이다. else if의 개수는 제한이 없으며 계속해서 사용할 수 있다.
그러나 else 절은 꼭 마지막에 위치해야 한다. (else 절을 필수사항은 아니다.)
각 조건에 따라서 여러 형태로 조건을 분기시키고 프로그램을 실행시킬 수 있다.
public class Conditional {
public static void main(String[] args) {
int x = 10;
int y = 2;
String Calc = "sum";
if(Calc.equals("sum")){
System.out.println(x + y);
} else if (Calc.equals("minus")){
System.out.println(x - y);
} else if (Calc.equals("mul")){
System.out.println(x * y);
} else {
System.out.println(x / y);
}
}
}
Calc라는 String에 따라서 연산이 틀려진다. 지금은 크게 효용성이 없어 보이지만, 후에 배우게 될 입력값과 조건문이
합쳐지면 엄청난 시너지를 낼 수 있다. 그것을 배우게 되면, 입력값으로 받는 값과 계산 방식에 따라서
마치 계산기처럼 연산을 수행해주는 프로그램, 만들 수 있다.
중첩 조건문
if 조건문은 중첩할 수 있다. 즉, if문 안에 또 if문이 등장하는 형태를 말한다.
else if절의 개수 제한이 없던 것처럼 중첩 역시 제한이 없다.
형태를 살펴보기보다는 아래의 예제를 살펴보는 것으로 넘어가도록 하자.
가령, ID와 PW를 판단하는 프로그램을 만든다고 한다면 아래와 같이 코드를 만들어볼 수 있다.
public class Conditional {
public static void main(String[] args) {
String ID = "Chany";
String PW = "ChanChany";
if(ID.equals("Chany")){
if(PW.equals("ChanChany")){
System.out.println("Authorized User");
}
} else {
System.out.println("Please enter a valid account");
}
}
}
한 가지 조심할 점은 만약 else문을 사용하고자 할 때, if문이 중첩될수록 그 위치를 올바르게 위치시켜야 한다는 점이다.
자, 이렇게 조건문에 대해서 살펴보았다.
사실 Boolean과 조건문의 만남보다도, 조건문과 반복문의 만남은 더더욱 파워풀하다. 다음 포스팅에서는 이 반복문에
대해서 살펴보겠다!
포스팅의 모든 학습 내용은 생활코딩의 Java 입문 수업의 출처임을 밝힙니다.
'프로그래밍 > Java 기초' 카테고리의 다른 글
Java(9), 반복문 (0) | 2020.04.07 |
---|---|
Java(8-1), 조건문 2 (0) | 2020.04.07 |
Java (7), 연산자 (0) | 2020.03.31 |
Java (6), 형 변환 (0) | 2020.03.31 |
Java (5), Data Type (0) | 2020.02.12 |