본문 바로가기

공부합시다

[JAVA] 조건문 - if, switch

if문

 

if문은  if, if-else, if - if else - else 이렇게 세 가지 경우로 사용된다.

 

1. if문의 기본 구조는..

 

if (조건식) {

참일 때 할 일

}

 

여기서 중괄호를 없애고, 문장을 사용할 수 있다.

 

 

2. if - else문은..

 

if (조건식) {

참일 때 할 일

}

else {

거짓 일 때 할 일

}

 

 

3. if - if else - else문은...

 

if (조건식1) {

조건식1이 참일 때 할 일

}

else if (조건식2) {

조건식2가 참일 때 할 일

}

'

'

'

else if (조건식n) {

조건식n이 참일 때 할 일

}

else {

조건식1~n 어느 조건식도 만족하지 않을 때 할 일

}

 

여기서 모든 조건식은 그 결과값이 true 또는 false 일 경우에만 사용 할 수 있다.

 

 


 

 

 

다음의 예제를 통해 알아보자

 

위의 1, 2번  if문의 예제이다.

 

예제1>

 

 

 

class IfExam
{
 public static void main(String[] args)
 {
  int i=30;

  if (i > 0) {
   System.out.println("i의 값은 양수 입니다.");
  }
  
  if (i % 2 == 0) {
   System.out.println("i의 값은 짝수 입니다.");

  } else {
   System.out.println("i의 값은 홀수 입니다.");
  }
 }
}

 


 

 

예제2> 위의 3번에 해당하는 예제

 

 

class  IfExam2
{
 public static void main(String[] args)
 {
  int i=30;

  if (i % 4 == 0)
  {
   System.out.println("i/4의 나머지 값은 0 입니다.");
  }
   else if (i % 4 == 1)
  {
   System.out.println("i/4의 나머지 값은 1 입니다.");
  }
   else if (i % 4 == 2)
  {
   System.out.println("i/4의 나머지 값은 2 입니다.");
  }
   else
  {
   System.out.println("i/4의 나머지 값은 3 입니다.");
  }
 }
}

 


 

조금 응용한 예제

 

예제3>

 

 

class  IfExamTest
{
 public static void main(String[] args)
 {
  int n=24;

  if (0 <= n && n < 10) //범위는 조건이 두개이고, && 또는 or 조건
  {
   System.out.println("n은 0 이상 10미만의 수");
  } //할일이 그냥 출력하는 것이므로 중괄호 {}안해도 됨
  else if (10 <= n && n < 20)
  {
   System.out.println("n은 10이상 20미만의 수");
  }
  else if (20 <= n && n < 30)
  {
   System.out.println("n은 20이상 30미만의 수");
  }
  else
  {
   System.out.println("음수 혹은 30이상의 수");
  }
 }
}

 

 


 

Switch문

 

if문의 조건식과는 다르게 조건식의 결과가 int 범위 이하의 정수만 가능하고, 조건식의 계산결과와 일치하는 case문으로 이동하여 break문을 만달때까지 수행한다. 단, case문의 값으로 변수를 사용할 수 없다.

만약, 일치하는 case문이 없을 경우 default문으로 이동하는데.. 이때, default문은 생략할 수 없다.

 

기본구조는 다음과 같다

 

switch (조건식) {

 case 값1 : 
      참일 때 할 일1
 case 값2 :
      참 일때 할 일2
 default :
      무조건 할 일

}

 

장점: 숫자값을 여러개 사용할 때는 if문보다 (보기)편하다.

단점: 숫자값만 쓸 수 있다

 

예제4, 5> 아래의 두 예제는 동일 한 듯 하지만..출력이 다르게 나타난다. 그 이유는 break가 있고 없고의 차이!

 

 

 

 

 

 


 

예제 6> 

 

 

여기서 24를 10으로 나눈 int 값은 2이므로...

 

 


if문과 switch문의 비교

if문이 주로 사용되며 경우의 수가 많은 경우 switch문을 사용할 것을 고려한다.

모든 switch문은 if문으로 변경이 가능하지만, if문은 switch문으로 변경할 수 없는 경우가 많다

if문 보다 switch문이 더 간결하고 효율적이다.