간단 자바 조건문 질문입니다.
조회수 281회
import java.util.Scanner;
public class test {
public static void main(String[] arg)
{
Scanner scan = new Scanner(System.in);
System.out.println("정수 입력: ");
int num = scan.nextInt();
if(num%3==0)
System.out.println(num + "는(은) 3의 배수입니다.");
if(num%5==0)
System.out.println(num + "는(은) 5의 배수입니다.");
if(num%7==0)
System.out.println(num + "는(은) 7의 배수입니다.");
if(num%9==0)
System.out.println(num + "는(은) 9의 배수입니다.");
else {
System.out.println("배수가 없다.");
}
}
}
조건을 만족하는 입력 값을 넣었을 때도 예외 사항 문구가 출력 되는데,
이 문구를 어떻게 배제 시키고 출력 시킬 수 있을까요?
1 답변
-
안녕하세요.
본문 코드의 의도는 위쪽의
if
문을 모두 거치고, 해당 사항이 하나도 없을 때else
를 실행하도록 하는 것 같습니다. 하지만if
문은 그렇게 작동하지 않아요.else는 직전의
if
혹은 이전의if
~if else
문들과만 연결됩니다.if (...) else if (...) else if (...) else
위와 같은 코드가 이상적인 연쇄 조건의 모습입니다.
if (...) // first if (...) // second if (...) // third else // third-else
이러한 방식으로 조건문을 연계하면 물론
if
안쪽의 구문은 조건이 맞을 때에만 실행되게 됩니다. 하지만 마지막을 제외한 모든if
는else
와 관련 없는 별개의 조건이 됩니다.즉
else
는 그 위가 어떻게 실행되었든, 자기와 연결된 바로 위의if
가 거짓이기만 하면 실행되는거죠.
댓글 입력