본문 바로가기
IT/Java

자바 switch 사용 시 범위 지정하기

by flatsun 2018. 12. 26.
반응형

저번에는 switch를 사용하는 법을 알아봤는데

생각을 약간 바꿔서 1~10이 아니라


1~100까지의 수가 있고

1~9, 10~19 처럼 특정 범위 별로 출력해야 할 내용이 다르면 어떨까?


먼저 if의 경우를 알아보겠는데

if는 뭐 단순하다



&&(and)를 걸어서

10보다 크고, 20 미만이면 출력

이런 식으로 하면 된다

물론 else if를 도배를 해야 해서 좀 그렇긴 한데

뭐 방법이 있어야 다른 방법을 사용하지 않겠나


이제 switch로 1~100까지 있는 경우를 알아보자


일단 그 전에


자바가 무슨 유도탄은 아니기 때문에

case에 유사한 값을 던졌다고 해도 case와 동일하지 않으면 default로 빠져버린다


고로 1부터 100까지 표현하려면...



이런 방법을 쓰다가는 그냥 사형감이다


다른 방법으로는





어차피 case 문에 break가 없으면 밑으로 쭉쭉 내려가면서 수행하므로

1부터 9까지 case를 걸어두고 9에서만 break 시키는 방법으로

범위처럼 지정할 수 있는데


문제는 1에서 100이면 1부터 100까지 다 쓸껀가?

이 방법 역시 사형감은 아니지만 살아날 만한 방법도 아니다



이 방법이 그래도 생존은 가능해 보이는데

switch에서 받아오는 값을 / 10으로 나눈 다음에 int로 캐스팅하면 되는데

int로 캐스팅 하는게 뭐냐면 


 int 형태로 바꾼다는 건데

int 형태가 뭔데요? 이러면 소수점이 없는 형태라고 보면 된다

즉 소수점을 없애준다는 말이다


이렇게 근본없이 설명하면 안되는데

캐스팅에 관해서는 다음에 알아보고 

아 그냥 소수점 자르는 거라고 하자


어쨌든 10으로 나눈 다음에 소수점을 날려버리면?




짠짜잔

1부터 100까지 도배하지 않아도 if처럼 범위 효과를 줄 수 있다






반응형

'IT > Java' 카테고리의 다른 글

자바 while, do while 알아보기  (0) 2019.01.06
자바 Casting(형변환) 알아보기  (0) 2018.12.27
자바 switch문 알아보기  (1) 2018.12.20
자바 if문 알아보기  (1) 2018.12.18
자바 상수(Constant), 패키지 알아보기  (0) 2018.12.17

댓글