신현식

switch문 실습 질문입니다.

월을 표시하는데 12~2를 표시할 방법이 생각 나지 않아
12, 1, 2 전부 case 를 만들었습니다.

case 12 || 1 || 2 :
논리곱으로 가능한게 아닌가 해서 했더니 오류가 났습니다.
12~2를 표시할 방법은 없나요?

작성중인 코드
import java.util.Calendar;
public class SwitchExam{
  public static void main(String[] args){
    //month에는 현재 월이 들어 있습니다.
    int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
    String season = "";
        //switch문을 이용해서 season이 봄/여름/가을/겨울 중 하나의 값을 가지도록 만들어 보세요.
        switch(month){
      case 12:
        season = "겨울";
        break;
      case 1:
        season = "겨울";
        break;
      case 2:
        season = "겨울";
        break;
      case 3:
        season = "";
        break;
      case 4:
        season = "";
        break;
      case 5:
        season = "";
        break;
      case 6:
        season = "여름";
        break;
      case 7:
        season = "여름";
        break;
      case 8:
        season = "여름";
        break;
      case 9:
        season = "가을";
        break;
      case 10:
        season = "가을";
        break;
      case 11:
        season = "가을";
        break;
      default:
      }
    //이 위에서 switch문을 완료해야 합니다.
    System.out.println("지금은 "+ month +"월이고, "+ season +"입니다.");
  }
}
3 개의 답변
정두식

이렇게 하시면 됩니다.

import java.util.Calendar;
public class SwitchExam{
  public static void main(String[] args){
    //month에는 현재 월이 들어 있습니다.
    int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
    String season = "";
        //switch문을 이용해서 season이 봄/여름/가을/겨울 중 하나의 값을 가지도록 만들어 보세요.
        switch(month){
      case 12:
      case 1:
      case 2:
        season = "겨울";
        break;
      case 3:
        season = "";
        break;
      case 4:
        season = "";
        break;
      case 5:
        season = "";
        break;
      case 6:
        season = "여름";
        break;
      case 7:
        season = "여름";
        break;
      case 8:
        season = "여름";
        break;
      case 9:
        season = "가을";
        break;
      case 10:
        season = "가을";
        break;
      case 11:
        season = "가을";
        break;
      default:
      }
    //이 위에서 switch문을 완료해야 합니다.
    System.out.println("지금은 "+ month +"월이고, "+ season +"입니다.");
  }
}
  • 김도윤
    질문이 있습니다 case12~2 를 저렇게 작성하셨는데 나머지도 case12~2 처럼 했더니 오류가 뜨는데 왜그런지 알 수 있을까요..? 자바 초보입니다. ― 김도윤 2017.8.18 11:24
  • 정두식
    참고로 1단계 문제 말고 2단계 문제(tryhelloworld.co.kr/courses/자바-입문/lessons/switch문-실습-d645dd04-de46-42fb-b391-cd60a74bc945)에 설명되어 있습니다. ― 정두식 2017.8.18 11:24
김도윤

import java.util.Calendar;
public class SwitchExam{
public static void main(String[] args){
//month에는 현재 월이 들어 있습니다.
int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
String season = "";
//switch문을 이용해서 season이 봄/여름/가을/겨울 중 하나의 값을 가지도록 만들어 보세요.
Switch(month){
case 12:
season = "겨울";
break;
case 1:
season = "겨울";
break;
case 2:
season = "겨울";
break;
case 3:
season = "봄";
break;
case 4:
season = "봄";
break;
case 5:
season = "봄";
break;
case 6:
case 7:
case 8:
season = "여름";
break;
case 9:
season = "가을";
break;
case 10:
season = "가을";
break;
case 11:
season = "가을";
break;
default:
}

//이 위에서 switch문을 완료해야 합니다.
System.out.println("지금은 "+ month +"월이고, "+ season +"입니다.");

}
}
이런식으로는 안되나요?
아직 Swtich문에 대해 이해를 못하고 있는것 같습니다.

Minhyeok Ko
import java.util.Calendar;
public class SwitchExam{
  public static void main(String[] args){
    //month에는 현재 월이 들어 있습니다.
    int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
    String season = "";
        //switch문을 이용해서 season이 봄/여름/가을/겨울 중 하나의 값을 가지도록 만들어 보세요.
        switch(month){
      case 12: case 1: case 2: season = "겨울" break;
      case 3: case 4: case 5: season = "봄" break;
     case 6: case 7: case 8: season = "여름" break;
     case 9: case 10: case 11: season = "가을" break;
      }
    //이 위에서 switch문을 완료해야 합니다.
    System.out.println("지금은 "+ month +"월이고, "+ season +"입니다.");
  }
}

이렇게 작성하시면 수월합니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.