이전 시간에 제어문에 대해서 배웠습니다. 제어문으로 원하는 동작을 코드로 구현하여 프로그램이 나옵니다. 그럼 이제 제어문을 자세히 알아보고 싶으시죠? 과연 제어를 하기 위한 명령문은 뭐가 있을까? 이런 고민을 하실 수 있습니다. 당연히 저 또한 공부를 할 때는 엄청 궁금했던 부분입니다.
만약에 어떤 상황이거나 조건이면 이렇게 해야지 다들 생각을 하실 겁니다. 예를 들어 버스와 지하철 중에 빨리 오는 것을 탄다고 생각을 했는데 버스가 먼저 오게 되면 버스를 타는 실행을 할 겁니다.
위와 같은 상황을 Java에서 사용을 할 수 있는 명령문을 이 글을 끝까지 읽는다면 하나는 배울 수 있습니다.
어떤 상황이나 조건일 때 실행을 하는 명령문을 조건문이라고 합니다. 이 글에서는 조건문 중에 if문을 배워 보겠습니다. 이 글을 끝까지 읽는 다면 if문의 기본적이고 원론적인 내용을 확실히 알 수 있습니다.
※ 잘 활용을 하고 적용을 하려면 많은 조건을 만들고 사용을 해봐야 합니다.
if문
if문을 알기 위해서는 영어의 뜻을 가지고 생각을 해보면 좋습니다. if는 만약이라는 뜻을 가지고 있듯이 만약에 이런 조건이라면 이걸 실행 하라고 하는 구조 만들어 집니다.
여기서 조건은 저희가 이전에 두 걸음에서 배운 관계 연산자를 사용을 하고 또는 관계 연산자와 논리 연산자를 혼합해서 조건을 만들게 됩니다.
그 이유는 이 연산자들의 결과는 참과 거짓이기 때문에 참이 되면 그에 맞는 조건문이 실행이 됩니다.
단일 if 문
단일 if문 같은 경우 if명령문 하나를 사용해서 조건을 만드는 것입니다.
if(조건){
명령문
}
이런 구조를 가지고 만듭니다. 단일 if문 같은 경우에는 조건이 참이면 실행하고 아니면 실행하지 않고 그 다음에 있는 명령문이나 실행문이 동작을 하게 됩니다.
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10; // 정수 변수 a 선언 후 10을 대입
if(a == 10) { // a변수가 10이면 실행
System.out.println("실행 됩니다."); //출력
}
if(a == 5) { // a변수가 5이면 실행
System.out.println("실행이 되지 않습니다."); //출력
}
}
if - else문
if-else문은 간단하게 생각을 하시면 흑백논리로 생각을 하시면 됩니다. 무조건 흑 또는 백을 선택을 해야 합니다. 예를 들어 비가 오면 우선을 가지고 오는 행동을 하고 오지 않으면 우선을 가지고 가지 않는 행동을 한다고 생각을 하시면 됩니다.
if(조건){
명령문
}
else{
명령문
}
위와 같은 구조로 이루어 집니다. if-else문 같은 경우에는 흑백논리이기 때문에 무조건 하나는 실행이 됩니다. if조건이 맞으면 if문 명령문이 if문 명령문이 틀리면 else명령문이 실행이 됩니다.
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 30; // 정수 변수 a를 선언 후 30을 대입
if(a == 10) { // a 변수가 10이면 실행
System.out.println("a는 10입니다.");
}
else { // a 변수가 10이 아니면 실행
System.out.println("a는 10이 아닙니다.");
}
}
if-else if-else문
if-else if-else문 같은 경우는 조건을 좀 더 세분하여 여러 조건을 만들고 그 조건들이 모두 맞지 않으면 else의 명령문이 실행이 되도록 하게 합니다.
if(조건){
명령문
}
else if(조건){
명령문
}
…
else{
명령문
}
위와 같은 구조입니다. 여기서 중요한 것은 위에 조건부터 확인을 하기 때문에 위의 조건이나 아래 조건이 둘 다 참이라고 해도 위에 있는 조건만 실행이 되고 그 아래 명령문으로 내려가게 됩니다. 그래서 우선순위를 정해야 합니다.
또 하나는 else if 같은 경우 원하는 만큼 조건을 추가해서 사용을 할 수 있습니다. if문을 늘리면 안되고 else if의 조건과 명령을 자유롭게 사용을 하면 됩니다.
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 15; //정수 변수 a 선언 후 15를 대입
if(a == 10) { // a 변수가 10이면 실행
System.out.println("a는 10입니다."); // 출력
}
else if(a == 15) { // a 변수가 10이 아니고 15이면 실행
System.out.println("a는 15입니다."); // 출력
}
else { // a변수가 10이 아니고 15가 아니면 실행
System.out.println("a는 10과 15가 아닙니다."); //출력
}
}