본문 바로가기
PROGRAMING📚/Java📑

Java::구성- switchCase

Ta이니 2024. 6. 20.
728x90
반응형

switch ~ case ~ break문

String input = JOptionPane.showInputDialog("당신이 태어난 달 입력 :");

javax.swing 에서 제공하는 라이브러리

다음과 같은 폼을 제공해 준다

int birthMonth = Integer.parseInt(input); //int 형으로 변경

JOptionPane.showInputDialog는 String 형으로 입력 받기 때문에 switch 안에서

태어난 달을 입력받기 위해서 int 형으로 값을 형변환 해주어야함

 

Integer.parseInt() 를 사용해서 형변환이 가능하다

switch (입력 값) {
      case (조건):
        //조건 만족시, 원하는 결과 작성
        break;
      default:
        //만족하는 결과가 없을 경우, 원하는 결과 작성
        break;
    }

break를 해주지 않으면 멈추지 않고 마지막 결과를 출력하기 때문에 

반드시 break 를 넣어주어야한다

( 방법 1)

package p03_method;

import javax.swing.*;
import java.util.Scanner;

public class Ex08switchcase {
  public static void main(String[] args) {
    String input = JOptionPane.showInputDialog("당신이 태어난 달 입력 :");
    int birthMonth = Integer.parseInt(input); //int 형으로 변경
    String result = "";
    //switch(입력 받은 값)
    switch (birthMonth) {
      case 12, 1, 2:
        result = "겨울";
        break;
      case 3, 4, 5:
        result = "봄";
        break;
      case 6, 7, 8:
        result = "여름";
        break;
      case 9, 10, 11:
        result = "가을";
        break;
      default:
        result = "계절";
        break;
    }
     System.out.printf("입력 받은 월 : %d월, %s \n",birthMonth,result);
  }

}

( 방법 2)

result = switch (birthMonth) {
  case 12, 1, 2 -> "겨울";
  case 3, 4, 5 -> "봄";
  case 6, 7, 8 -> "여름";
  case 9, 10, 11 -> "가을";
  default -> "계절";
};

 

(방법 3)

public class Ex08switchcase {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String input = JOptionPane.showInputDialog("당신이 태어난 달 입력 :");
    int birthMonth = Integer.parseInt(input); //int 형으로 변경
    String result = "";
    //switch(입력 받은 값)
    switch (birthMonth) {
      case 12: case  1: case 2:
        result = "겨울";
        break;
      case 3: case 4: case 5:
        result = "봄";
        break;
      case 6: case 7: case 8:
        result = "여름";
        break;
      case 9: case 10: case 11:
        result = "가을";
        break;
      default:
        result = "계절";
        break;
    }
    System.out.println(result);
  }

}

String familyName = input.substring(0, 1);

substring (시작 위치,시작 위치에서 몇번째 글자 까지 받아올 것인지) 

familyName 안에는 (ex) "강호동" -> "강" 이 들어감

package p03_method;
import javax.swing.*;

public class Ex08switchcase {
  public static void main(String[] args) {
    String input = JOptionPane.showInputDialog("당신이 태어난 달 입력 :");
    int birthMonth = Integer.parseInt(input); //int 형으로 변경
    input = JOptionPane.showInputDialog("당신의 이름을 입력 : ");
    //substring (시작 위치,시작 위치에서 몇번째 글자 까지 받아올 것인지)
    String familyName = input.substring(0, 1);
    switch (familyName) {
      case "강":
        System.out.println("Kang");
        break;
      case "이":
        System.out.println("Lee");
        break;
      case "박":
        System.out.println("Park");
        break;
    }
  }

}

For 문(초기값, 조건식, 증감식)

 

비교적 횟수에 대한 예측이 가능할 때 사용함

package p03_method;

public class Ex09For {
  public static void main(String[] args) {
    int sum = 0; //지역변수는 반드시 초기화
    //반복문을 구현할 때,
    //1. 패턴을 찾아라
    //2. 초기값, 조건식, 증감식 을 적용하여 구현

    for (int i = 0; i < 10; i++) sum = sum + i;
    System.out.println(sum);
    sum =0;
    for (int i = 9; i >= 0; --i)
      sum = sum + i;
    System.out.println(sum);
  }
}

 

package p03_method;

import javax.swing.*;

public class Ex09For {
  public static void main(String[] args) {
    DanPrint dPrint = new DanPrint();
    String input = JOptionPane.showInputDialog("출력 원하는 단을 입력하세요!");
    dPrint.print_dan(Integer.parseInt(input));
    System.out.print("------------------------------------\n");
    dPrint.printAllDan();
  }
}

class DanPrint {
  void print_dan(int dan) {
    System.out.println(dan + "단");
    for (int i = 1; i < 10; i++) {
      System.out.printf("%d * %d = %2d\n", dan, i, dan * i);
    }
  }

  void printAllDan() {
    for (int i = 2; i < 10; i += 3) {
      for (int j = 1; j < 10; j++) {
        for (int k = 0; k < 3; k++) {
          if(i+k != 10){
            System.out.printf("%d * %d = %2d \t",
                i + k, j, (i + k) * j);
          }
        }
        System.out.println();
      }
      System.out.println();
    }
  }
}

 

int i=0;
for( ; ;){
  if(i>10) break;
  System.out.println(i++);
}

for(int k=10, j=0; j <10 || k>0 ; j++, k--)
{
 	//인자 안, 초기값, 조건문, 증감식 안에 2개 이상 받을 수있음
}

for( ; ;)  초기값, 조건, 증감식이 없어도 사용이 가능함

while == true 랑 같아서 반드시 break; 문이 필요 

break ; 자신이 속한 반복문을 벗어남

package p03_method;

public class Ex10while {
  public static void main(String[] args) {
    //조건, 명령
    int i = 0;
    int sum = 0;
    while (i < 10) {
      // sum +=i;
      // i++;
      sum += i++;
    }
    i = 2;
    int j = 1;
    while (j < 10) {
      i = 2;
      while (i < 10) {
        System.out.printf("%d * %d = %2d \t", i, j, i++ * j);
      }
      j++;
      System.out.println();
    }
  }
}

[ 랜덤 숫자 맞추기, 간단한 게임 만들기]

    System.out.println("내 마음의 숫자를 맞춰봐 (1~100)");
    int random  = (int)(Math.random()*100)+1;
    int count = 0;
    System.out.println(random);
    while(true){
      int answer =Integer.parseInt(JOptionPane.showInputDialog("숫자를 입력하세요! (1~100)"));
      if(random == answer){
        System.out.printf("정답 입니다! 정답은 %d 시도 횟수 : %d\n",answer,count);
        break;
      }
      else if(random > answer){
        count++;
        System.out.printf("%d 보다 값이 큽니다! 시도 횟수 : %d\n",answer,count);
      }
      else if(random < answer){
        count++;
        System.out.printf("%d 보다 값이 작습니다! 시도 횟수 : %d\n",answer,count);
      }
    }

 

정답을 맞추면 새로운 게임으로 시작

Q or q 를 입력하면 게임 종료!

 System.out.println("=======내 마음의 숫자를 맞추기 게임=======");
    boolean stop = false;
    while (true) {
      int random = (int) (Math.random() * 100) + 1;
      if (stop) break;

      while (true) {
        String input = JOptionPane.showInputDialog("숫자를 입력하세요(종료하려면 Q,q)");
        if (input.toLowerCase().equals("q")) {
          stop = true;
          break;
        } else {
          int answer = Integer.parseInt(input);
          if (answer > random) {
            System.out.println("작습니다.");
          } else if (answer < random) {
            System.out.println("큽니다");
          } else {
            System.out.println("정답입니다.");
          }
        }
      }
    }

 

package p03_method;

import javax.swing.*;

public class HomeWork {
  //가위바위보게임 만들기
  public static void main(String[] args) {

    int me;
    do {
      int you = (int) (Math.random() * 2);
      String input = JOptionPane.showInputDialog("가위(0), 바위(1), 보(2) 중에 입력하세요!");
      me = Integer.parseInt(input);
      int result = me - you;
      if(result == -2  ||  result ==1)
      {
        System.out.printf("이겼습니다! COM : %d ME: %d ", you, me);
      }
      else if(result ==0){
        System.out.printf("비겼습니다 COM : %d ME: %d ", you, me);
      }
      else if(result == -1 || result==2 ){
        System.out.printf("졌습니다 COM : %d ME: %d ", you, me);
      }
      try {
        me = Integer.parseInt(input);
      } catch (Exception e) {
        continue;
      }
    }
    while (true);
  }
}
728x90
반응형

댓글