java

쉽지만 어려운 #Java #자바 #성공적 2.조건문(switch)

sieunju 2016. 4. 4. 23:05
반응형

안녕하세요 J.sieun 입니다. 


저번에는 if 문을 설명해 드렸다면 이번에는 또다른 조건문인 Switch 문입니다. 


If 문과 Switch 문은 같은 조건문이긴 하나 쓰이는 곳이 조금 다른 조건문이라 보시면


됩니다. 


아래 소스를 보시면.


public class SecondClass {


public static void main(String[] args) {

// TODO Auto-generated method stub

int num = 2;

switch(num)

{

case 1(num의 값) :

System.out.println(num+"값");

break;

case 2(num의 값):

System.out.println(num+"값");

break;

case 3(num의 값) : 

System.out.println(num+"값");

break;

default :

System.out.println("값의 범위를 초과하였습니다.");

break;

}

}


}



이렇게 입력하시면 결과값은


정수 num 의 따라 출력이 되는 값이 다르게 됩니다. 


현재 num 의 값이 2이므로 case 2 에 있는 것이 출력이 되겠습니다. 


if문과 별차이 없는것처럼 보이지만 조금은 다릅니다. if문과는 달리 여러개의 조건을 설정 


할수 있습니다.  또, case : 안에 있는 것들을 실행또는 출력한뒤 break; 로 빠져나오고 다


시 또 얼마든지 반복할수 있기 때문에 If문에서 한계가 있는 것을 switch 문에서는 해결해줍니다. 


예를 들면 특정 하나의 변수가 여러번 바뀔때 마다 거기에 실행하는 메소드를 달리하고 싶다면 Switch 문을 이용하여 처리 할수있습니다. 


그럼 궁금한 사항이 몇개 있습니다. 


1. case 변수값 : 실행할것들과 출력문들을 적어두고  굳이 break; 를 써야 하나요??


정답은 맘대로 하셔도 됩니다. 하지만 break; 쓰면 switch 문을 빠져나오는 것이고 안쓰면 그다음에 있는 case문들을 연속적으로 실행하기 때문에 의도치 않은 결과를 가져 올수 있으니  이점 유의하시길 바랍니다. 


2. default :  문은 어떤건가요???

쉽게 말하자면 case 문 조건 밖에 있는 것들을 출력하는 것입니다. 


그렇다면 이 스위치 문을 응용한 것의 예제를 보여드리겠씁니다. 


public class SecondClass {


public static void main(String[] args) {

// TODO Auto-generated method stub

int num = 1;

while (num < 5) {

switch (num) {

case 1:

System.out.println("첫번째 case "+num + "값");

break;

case 2:

System.out.println("두번째 case"+num + "값");

break;

case 3:

System.out.println("세번쨰 case"+num + "값");

break;

default:

System.out.println("값의 범위를 초과하였습니다.");

break;

}

num ++;


}

}


}



음....다음 시간쯤에 보여드릴 while문인데 흠..일단 간단히 적어보았습니다. 


이렇게 되면 출력 결과는 


첫번째 case 1값

두번째 case2값

세번쨰 case3값

값의 범위를 초과하였습니다.


이런식으로 나옵니다. 


해석을 하자면 num 변수 초기 값이 1일때 while(num<5) == 참이므로 while 문 안으로 들어감 →


case 1 문이 실행이 되고 빠져나온다 


num++ 에 의해 num 의 값은 1이 증가 한 


이런식으로 계속 반복되다가 num의 값이 5가 될때까지 while문이 계속 반복을 합니다. 


5가 될때에는 while문에 조건이 성립되지 않으므로 while문은 더이상 실행이되지 않습니다.


감사합니다. 


※궁금하신거 댓글달아주시길 바랍니다. ㅎㅎ


퍼가시는건 상관 없는데 말은 하고 퍼가주시길 바랍니다.^^※







반응형