[Java/자바]제어문(2)_ switch 조건문
안녕하세요! 저번 포스팅에서는 제어문 중의 한 종류인 if문에 대해 알아보았는데요.
이번 포스팅에는 제어문에서 또 다른 종류인 switch조건문에 대해 다루어 보겠습니다.
switch문이란?
switch문은 이 case는 이렇게 처리할게~!라는 의미를 갖고 있습니다.
switch문의 구조
switch(변수) 식이 올 수 있으니, 대체로 변수를 사용{
case 값1:
변수 == 값1 일때 실행할 명령;
break;
case 값2:
변수 == 값2 일때 실행할 명령;
break;
...
default:
모든 case에 해당하지 않을 때 실행할 명령
}
switch문 예시_1
public class Switch_Traffic {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("☆★☆★☆★신호등 프로그램☆★☆★☆★");
System.out.println("빨간불:1, 노란불:2 , 초록불:3");
System.out.println("신호를 입력해 주세요:");
int sign=sc.nextInt();
switch(sign) {
case 1:
System.out.println("빨간불입니다. 정지하세요");
break;
case 2:
System.out.println("노란불입니다. break밟으세요");
break;
case 3:
System.out.println("초록불입니다. 출발하세요");
break;
default:
System.out.println("잘못 누르셨습니다.");
}
}
}
신호등 프로그램을 만들어 봤어요!!
1.Scanner를 이용해서 사용자에게 정수를 입력받을 거예요.
입력받은 정수는 sign이라는 정수형태인 변수에 들어가게 만들어져 있네요.
Scanner sc= new Scanner(System.in);
System.out.println("☆★☆★☆★신호등 프로그램☆★☆★☆★");
System.out.println("빨간불:1, 노란불:2 , 초록불:3");
System.out.println("신호를 입력해 주세요:");
int sign=sc.nextInt();
2.switch문을 만들었어요! switch( ) 안에 있는 괄호에는 변수를 넣어줄 거예요. 이렇게 되면 switch는 sign이라는 변수를 검사하겠죠 밑에 있는 case 수와 sign에 입력한 변수를 비교하게 됩니다.
switch(sign) {
case 1:
System.out.println("빨간불입니다. 정지하세요");
break;
case 2:
System.out.println("노란불입니다. break밟으세요");
break;
case 3:
System.out.println("초록불입니다. 출발하세요");
break;
default:
System.out.println("잘못 누르셨습니다.");
}
따라서 sign의 변수가 1이라면 case 1의 실행문 즉,
System.out.println("빨간불입니다. 정지하세요"); break; => 이 실행문이 실행되게 됩니다.
마찬가지로 case 2, case 3 다 값을 비교한 뒤 sign변수와 같지 않다면 실행되고 같다면 실행문이 실행됩니다.
참고로 break문은 정지 역할을 합니다 break; 가 없다면 알맞은 case문을 실행한 뒤 밑에의 실행문들이 맞든 안 맞든 실행을 하게 됩니다. 따라서 사용자의 사용목적에 따라 다르지만 저는 거의 break;를 쓰는 것 같아요!!
default는 설정한 case 값에 모두 해당되지 않을 경우 실행되는 실행문이 실행됩니다.
따라서 입력한 값이 1,2,3이 아닌 값을 입력하면 default 값이 나오게 되겠지요.
자 그럼 출력한 값 봐볼게요!
출력 결과
1 입력했을 때 결과창
2 입력했을 때 결과창
3 입력했을 때 결과창
1,2,3이 아닌 다른 숫자 입력했을 때 결과창
출력 결과를 보니 이해되셨을까요? ㅎㅎ..
다음 예시 봐볼게요!!
switch문 예시_2
public class Switch_Pokemon {
public static void main(String[] args) {
Random random= new Random();
System.out.println("★☆★☆Random Choosing Pokemon★☆★☆");
System.out.println("1.피카츄: 전기괴물");
System.out.println("2.꼬부기: 물괴물");
System.out.println("3.이상해씨:풀괴물");
int mypokemon=random.nextInt(3)+1; //0~2 내가 적은 숫자 -1 이기때문에
//+1을 적어주어 1~3까지 의 값을 넣어준다.
System.out.println("선택된번호"+mypokemon);//Random은 실행 할때마다 Random의 값을 넣어준다.
switch(mypokemon) {
case 1:
System.out.println("피카츄 선택! 백만볼트!!!!");
break;
case 2:
System.out.println("꼬부기 선택! 물대포!!!");
break;
case 3:
System.out.println("이상해씨 선택! 덩쿨채찍!!!");
break;
}
}
}
코드를 설명하기 전에 프로그램을 먼저 설명하자면
세 가지의 포켓몬스터를 설명하는 멘트를 작성한 뒤
그 세가지의 포켓몬중 랜덤으로 mypokemon변수 안에 정수가 입력됩니다.
이때 random 클래스를 사용해 볼 것입니다.
그리고 그 랜덤으로 선택된 포켓몬에 맞는 case를 찾아가 실행문을 실행합니다.
우선 Random클래스에 대해 먼저 알아보시죠
Random클래스
Random클래스는 이름에서 유추할 수 있듯이 랜덤으로 숫자를 선택해 주는 기능을 포함한 클래스입니다.
- Random ( ): 랜덤 클래스 객체 생성
- nextInt( ) : 정수 값의 난수를 발생
- nextInt( 숫자 ): 0~숫자 -1 한 값까지의 정수 값의 난수를 발생
- nextFloat ( ) : 0.00~ 1.0까지의 실수형인 난수를 발생
코드 설명
1. Random random= new Random( ); => random이라는 Random 객체를 생성
사용자에게 보일 멘트를 설정해 줍니다.
int mypokemon=random.nextInt(3)+1; => mypokemon이라는 변수에 random으로 0~3의 값을 넣어줍니다.
+1을 해준 이유는 3만 적으면 0~2의 값을 랜덤으로 넣습니다. 따라서 +1을 해 줌으로 서 1~3의 값을 랜덤으로 변수에 넣어줍니다.
Random random= new Random();
System.out.println("★☆★☆Random Choosing Pokemon★☆★☆");
System.out.println("1.피카츄: 전기괴물");
System.out.println("2.꼬부기: 물괴물");
System.out.println("3.이상해씨:풀괴물");
int mypokemon=random.nextInt(3)+1; //0~2 내가 적은 숫자 -1 이기때문에
//+1을 적어주어 1~3까지 의 값을 넣어준다.
2. 선택된 번호를 출력하고 switch문을 작성하여 랜덤으로 들어간 숫자를 비교해 알맞은 case문을 실행합니다.
System.out.println("선택된번호"+mypokemon); //Random은 실행 할때마다 Random의 값을 넣어준다.
switch(mypokemon) {
case 1:
System.out.println("피카츄 선택! 백만볼트!!!!");
break;
case 2:
System.out.println("꼬부기 선택! 물대포!!!");
break;
case 3:
System.out.println("이상해씨 선택! 덩쿨채찍!!!");
break;
}
}
출력 결과
랜덤 값으로 1이 선택되었네요 따라서 case1의 실행문인 피카츄가 실행되었습니다.
이상으로 오늘은 조건 문중의 하나인 switch문에 대하여 알아보았는데요
다음 포스팅에서는 반복문에 대하여 알아보겠습니다.
이상 글 읽어주셔서 감사합니다!!
