새소식

JAVA

자바 기초 : 조건문 (if문, switch문)

  • -

핵심개념

  • 제어문(흐름제어문) : 자바는 main()메소드의 시작 중괄호{} 안에서 위에서부터 아래로 실행하는 흐름을 가진다. 이러한 실행의 흐름을 개발자가 원하는 방향으로 바꾸어 주도록하는 것을 제어문 또는 흐름제어문이라고 한다.
    ex) 조건문(if문, switch문), 반복문(for문, while문, do-while문)

  • if문 : 조건식 결과가 true이냐 false이냐에 따라 블록 실행 여부가 결정. 조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나 boolean 타입의 변수가 올 수 있음.
    if 문은 조건식이 true이면 중괄호 내부를 실행하며, false일 경우에는 블록을 실행하지 않는다.
    if-else문은 조건식이 true이면 중괄호 내부를 실행하고, false이면 else 중괄호 내부를 실행한다.
public static void main(String[] args) {
   int score = 93;

   if(score>=90) {
   System.out.println("점수가 90보다 큽니다.");
   System.out.println("등급은 A 입니다.");
   }

   if(score<90)
   System.out.println("점수가 90보다 작습니다.");//if문에 중괄호가 없어 여기까지만 실행됨
   System.out.println("모두 잘하셨습니다."); //if에 소속된 문장 아님
}
실행결과 : 
점수가 90보다 큽니다.
등급은 A 입니다.
모두 잘하셨습니다.
public static void main(String[] args) {
   int score = 70;

   if(score>=90) {
   System.out.println("점수가 90보다 큽니다.");
   System.out.println("등급은 A 입니다.");
   }else {
   System.out.println("점수가 90보다 작습니다.");
   System.out.println("등급은 B 입니다.");
  }
}
실행결과 : 
점수가 90보다 작습니다.
등급은 B 입니다.
public static void main(String[] args) {
int score = 50;

   if(score>=90) {
      System.out.println("점수가 90~100입니다.");
      System.out.println("등급은 A 입니다.");
   }else if(score>=80) {
      System.out.println("점수가 80~89입니다.");
      System.out.println("등급은 B 입니다.");
   }else if(score>=70) {
      System.out.println("점수가 70~79입니다.");
      System.out.println("등급은 C 입니다.");
   }else {
      System.out.println("점수가 70 미만입니다.");
      System.out.println("등급은 D 입니다.");
  }
}
실행결과 :
점수가 70 미만입니다.
등급은 D 입니다.

 

  • random()함수 : 0.0과 1.0 사이에 속하는 double타입의 난수를 리턴하는 Math.random()가 있다.
    이 함수의 범위는 0.0<=Math.random()<1.0으로 1.0 값은 이 범위에 포함되지 않는다. 이 함수를 이용해 1~10 자리의 정수 하나를 얻기 위해서는 다음과 같은 방법을 따른다.
    1. 각 변에 얻기 위한 자리 수를 곱한다.
       0.0*10<=Math.random()<1.0*10     -> 0.0<=Math.random()<10.0
    2. int 타입으로 강제 변환한다.
       int(0.0)<=Math.random()<int(1.0)    ->0<=Math.random()<10
    3. 각 변에 1을 더한다.
      0+1<=Math.random()<10+1              ->1<=Math.random()<11    -> 1부터 10까지의 정수 중 하나를 얻는다.
public static void main(String[] args) {
int dice = (int)(Math.random()*6) +1;

   if(dice==1) {
      System.out.println("1번이 나왔습니다.");
   }else if(dice==2) {
      System.out.println("2번이 나왔습니다.");
   }else if(dice==3) {
      System.out.println("3번이 나왔습니다.");
   }else if(dice==4) {
      System.out.println("4번이 나왔습니다.");
   }else if(dice==5) {
      System.out.println("5번이 나왔습니다.");
   }else if(dice==6) {
      System.out.println("6번이 나왔습니다.");
  }
}
실행결과 : 3번이 나왔습니다. (새로 실행할때마다 결과가 변함)

 

  • switch문 : if문과 마찬가지로 조건제어문이다. 하지만 switch문의 변수의 값에 따라서 실행문이 결정된다는 점이 if문과 다르다. 그렇기 때문에 if문보다 코드가 간결하다. switch(변수){case 값1:... case 값2:....default:...}의 형태로 변수의 값이 값1이면 첫번째 case코드부터 실행하고 그 뒤로 차례대로 수행되며 동일한 값을 가진 case가 없을 경우 default 코드를 실행한다. default 코드는 생략이 가능하다.
public static void main(String[] args) {
   int dice = (int)(Math.random()*6)+1;
   switch(dice) {
      case 1:
         System.out.println("1번이 나왔습니다.");
         break;

      case 2:
         System.out.println("2번이 나왔습니다.");
         break;

      case 3:
         System.out.println("3번이 나왔습니다.");
         break;

      case 4:
         System.out.println("4번이 나왔습니다.");
         break;

      case 5:
         System.out.println("5번이 나왔습니다.");
         break;

      default:
         System.out.println("6번이 나왔습니다.");
   }
}
실행결과 : 3번이 나왔습니다. (새로 실행할때마다 결과가 변함)

 

  • switch문에서 break문의 역할 : 다음 case문을 실행하지 않고 switch문을 빠져나가게하는 역할을 한다. break문이 없다면 모든 case와 default문이 실행되고 빠져나간다.
public static void main(String[] args) {
   int time = (int)(Math.random()*4)+8;
   System.out.println("현재시간은 " + time + "시 입니다.");

   switch(time) {
      case 8:
      System.out.println("일어납니다.");
      case 9:
      System.out.println("출근합니다.");
      case 10:
      System.out.println("간식을 먹습니다.");
      default:
      System.out.println("업무를 봅니다.");
   }
}
실행결과 : 
현재시간은 9시 입니다.
출근합니다.
간식을 먹습니다.
업무를 봅니다.

 

  • char 타입의 switch문
public static void main(String[] args) {
//switch문을 이용해 알파벳 대소문자에 관계없이 동일하게 처리
   char grade = 'c';

   switch(grade) {
   case'A':
   case'a':
      System.out.println("우수등급입니다.");
      break;

   case'B':
   case'b':
      System.out.println("일반등급입니다.");
      break;

   default:
      System.out.println("손님입니다.");
   }
}
실행결과 : 손님입니다.

 

  • String 타입의 switch문 : 자바7버전 이후부터 String타입 변수 사용 가능. 그전까지는 정수형변수만 사용 가능했었음.
public static void main(String[] args) {
String position = "과장";

   switch(position) {
   case "부장" :
      System.out.println("1000만원");
      break;
   case "과장" :
      System.out.println("700만원");
      break;
   default :
      System.out.println("400만원");
  }
}
실행결과 : 500만원

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.