2008년 04월 01일
switch문과 for문 기초.
이번에는 switch문과 for문을 이야기 해볼까 합니다.
영어 타이핑 치기가 귀찮아서 그냥 한글로 스위치, 포문 이렇게 하겠습니다 -0-;;;
그럼 스위치문 부터 시작하겠습니다.
스위치문 소스를 보기 전에 몇가지 기억해 두고 갑시다.
스위치 문은 전체적으로 if ~ else와 유사한 특징을 갖는다고 볼 수 있다.
스위치 문은 {} <- 이런 괄호가 매우 적게 등장해서 소스가 보기 쉽다.
구간을 갖는 값은 비교가 불가능하다.
위에 내용은 검증된건 아니지만 다 맞을거예요^^; 그럼 맞는다고 믿어보고 시작해보죠.
일단 첫째로 if ~ else문과 비슷하다고 했습니다. 왜 일까요?
음..이프문에 대해서 다시 생각해볼까요?
if문은 주어진 변수 값을 비교 연산자를 통해 비교를 합니다.
비교를 할 수 없거나 비교를 해서 해당 사항이 아니면 else의 내용을 콱 실행하죠.
스위치문은 case의 값과 비교를 하고 해당사항이 없으면 default 를 실행하죠
이런 점이 스위치문과 닮은 점입니다.
그럼 둘째로 스위치문은 이프문과 다르게 {} <- 이 괄호가 없어서
break; 라는 것을 사용해야 합니다. 뭐랄까 귀찮아 보이겠지만 보기엔 편하다고 주장하고 싶네요.
섯째로는 좀 단점이네요. 구간 값을 비교하지 못한답니다. 음.. 이표현이 적절할 것 같네요.
비교의 대상과 case의 내용이 같아야만 그 내용을 실행한다.
뭐 이렇게 설명을 간단하게 했으니 소스를 보시면 '훗~ 쉽구만' 하실겁니다.
class Test
{
public static void main(String args[])
{
int num = 2;
switch(num) {
case 0:
System.out.println("0");
break;
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
default:
System.out.println("???");
}
}
}
소스에 대해서 이제는 굳이 설명을 하지 않아도 될 것 같습니다. 기본예제이기도 하고
if문을 안다면 말 그대로 이건 껌이죠 ~ 그러나 조심해야 할것이 있습니다.
break;를 부분적으로 빼먹게 되면 문제가 생깁니다. 이건 직접 해보세요~
그리고 구간을 갖는 연속적인 값은 비교가 불가능합니다. 굳이 가능하게 하고 싶다면
연속적인 구간을 일일이 다 코딩하는 노가다 밖에 길이 없겠죠 ^^?
그럼 이번엔 for문을 하겠습니다.
포문은 아주 ~ 흥미롭습니다. 왜냐~ 써먹기에 따라서 엄청난 효율을 보일수도 있으니까요.
포문 같은 경우는 와일문이랑 비슷하기도 합니다. 그리고 포문은 대표적인 주의점도 있죠.
'버뮤다 삼각지 같은 무한루프를 조심해라!' 입니다. C언어를 대표적인 사례로 들 수 있겠네요.
누구나 C언어로 구구단을 짜다가 무한루프에 빠져서
프로그램을 배우는 초기에 "꺄악!!" 하신분도 있을 겁니다.
그럼 수다는 이만 하고 특징에 대해서 조금만 더 하고 소스를 보도록 하죠.
포문은 와일문이랑 비슷하다고 했죠? 이유는 둘다 루프를 빙글빙글 돌기 때문입니다.
다른점이라면 와일문은 루프를 도는 조건이 참이면 루프를 화전하고
루프의 조건이 "구라(거짓)다!!" 라는 조건이 성립하면 루프 밖으로 나가버립니다.
포문도 이와 비슷하기는 하죠. 그러나 다르다면 포문의 경우는 숫자를 카운드 해서 비교를 한다(?)
라고 말하면 될것 같네요. 포문을 많이 다뤄보진 않았지만 전 숫자 말곤 포문에 먼가를 넣어서
참거짓을 비교하는것을 본적은 없거든요 ^^;
어떻게 보면 비교연산자이기 때문에 참거짓이라고도 할수 있겠죠.
그러나 포문은 보통 인티져와 같은 정수형 데이터를 카운트 해서 그 크기를 비교하죠.
그럼 소스를 볼까요?
class Test
{
public static void main (String args[])
{
for(int a=1;a<=9;a++)
{
System.out.println("2 * " + a + " = " + 2*a);
}
}
}
보시면 뭔지 아실겁니다. 프로그래밍을 하면 꼭 하고 간다는 구구단 짜기 입니다.
위 소스는 간단하게 2단을 구성한 것입니다.
그리고 아마 위에서 제가 설명한 부분에서 모든 소스를 이해 하실 수 있을거라 믿습니다.
그럼 이전에 다른 것 중에 키보드를 입력 받는 소스와 결합을 잘 시키면
원하는 구구단을 출력해주지 않을까요?
이런건 직접 해봐야 잼있습니다. 각자 해보세요~
그럼 이번 글은 이만 줄이겠습니다. 캄사합니다^^
# by | 2008/04/01 02:03 | 정리할 자료들 | 트랙백 | 덧글(1)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]