블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total662,015
Today10
Yesterday42
프로그램의 로직을 기본적으로 결정짓는 것은 무엇일까? 아마 if ~ else 가 아닐까 싶다. if ~ else 는 어떠한 상황을 마주쳤을때, 그 상황에서 어떻게 해야 할것인가에 대해 알려주게 된다. 마치 여러개의 질문을 거쳐서 답을 찾아가는 스무고개와 같이...


if 문의 기본적인 형태.
if 의 기본적인 형태는 다음과 같이 쓸 수 있다.

if(비교식) {
    수행문;
}

비교식을 확인하고 그것이 참의 값을 갖게 될 경우 수행문을 수행하는 것이다. 그렇기 때문에 비교식에는 항상 참과, 거짓을 나타내는 boolen 타입의 결과갑 만을 갖을 수 있게 된다. 물론 수행문에는 어떤 것이 와도 상관이 없다. 만약 숫자 1이 10 보다 크다 라는 '10>1' 비교식을 가지고 있을때, 다음과 같은 문장을 만들 수 있다.

if(1 > 10) {
    System.out.println("10 이 1 보다 크다');
}


if ~ else 문.
만일 비교식이 거짓의 값을 갖게 될때도 무언가를 실행해야 한다면 어떻게 해야 할까? 이럴땐 if ~ else 문을 사용하여 if 문을 확장하여 사용하는 것이 가능하다. else 문은 말 그대로 if 가 아닐 경우를 포함하는 것이다.

if(1 > 10) {
    System.out.println("10 이 1 보다 크다");
} else {
    System.out.println("10 이 1 보다 크지 않다.");

한가지 비교식을 가지고 그것이 참일 경우 그렇지 않을 경우 모두의 경우에 대해서 적절한 행동이 가능한 것이다. 그럼 이런 경우는 어떻게 해야 할까?

if ~ else if 문.
숫자의 범위에 따라 적당한 등급을 주고 싶다면... 여러개의 if 문을 사용해서 표현이 가능할 것이다.

if(n > 9) {
    System.out.println("A 등급);
}
if(n > 7) {
    System.out.println("B 등급");
}
if(n > 5) {
    System.out.println('C 등급");
}

하지만, 한가지 문제가 발생하게 된다. 만일 n 이라는 변수가 8의 값을 가지고 있다면, 두번째 비교문과 세번째 비교문을 만족하기 때문에 원했던 "B 등급" 이 아니라 "B 등급 C 등급" 이 함께 출력될 것이다. 한가지 비교가 이루어진 후에는 다른 비교가 이루어지지 않도록 비교문을 하나로 묶어주는 것이 else if 문이다. 앞서 if 문의 결과가 옯지 않을 경우에만 다음의 if 문을 실행하는 것이다.

if(n > 9) {
    System.out.println("A 등급);
} else if(n > 7) {
    System.out.println("B 등급");
} else if(n > 5) {
    System.out.println('C 등급");
}

위와 같이 프로그램을 작성하게 된다면 원했던 "B 등급" 의 답만을 얻을 수 있을 것이다.

'Dev Center > JAVA start' 카테고리의 다른 글

하나의 선택! switch, case.  (0) 2010.07.20
지속가능한 힘. while, do while  (0) 2010.07.19
이것 아니면 저것. if ~ else 문  (0) 2010.07.18
배열의 배열  (0) 2010.07.17
getter 와 setter.  (1) 2010.07.16
배열만 알아도 한단계 업그레이드!  (0) 2010.07.15
Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함