if문
if문은 if, if-else, if - if else - else 이렇게 세 가지 경우로 사용된다.
1. if문의 기본 구조는..
if (조건식) {
참일 때 할 일
}
여기서 중괄호를 없애고, 문장을 사용할 수 있다.
2. if - else문은..
if (조건식) {
참일 때 할 일
}
else {
거짓 일 때 할 일
}
3. if - if else - else문은...
if (조건식1) {
조건식1이 참일 때 할 일
}
else if (조건식2) {
조건식2가 참일 때 할 일
}
'
'
'
else if (조건식n) {
조건식n이 참일 때 할 일
}
else {
조건식1~n 어느 조건식도 만족하지 않을 때 할 일
}
여기서 모든 조건식은 그 결과값이 true 또는 false 일 경우에만 사용 할 수 있다.
다음의 예제를 통해 알아보자
위의 1, 2번 if문의 예제이다.
예제1>
class IfExam
{
public static void main(String[] args)
{
int i=30;
if (i > 0) {
System.out.println("i의 값은 양수 입니다.");
}
if (i % 2 == 0) {
System.out.println("i의 값은 짝수 입니다.");
} else {
System.out.println("i의 값은 홀수 입니다.");
}
}
}
예제2> 위의 3번에 해당하는 예제
class IfExam2
{
public static void main(String[] args)
{
int i=30;
if (i % 4 == 0)
{
System.out.println("i/4의 나머지 값은 0 입니다.");
}
else if (i % 4 == 1)
{
System.out.println("i/4의 나머지 값은 1 입니다.");
}
else if (i % 4 == 2)
{
System.out.println("i/4의 나머지 값은 2 입니다.");
}
else
{
System.out.println("i/4의 나머지 값은 3 입니다.");
}
}
}
조금 응용한 예제
예제3>
class IfExamTest
{
public static void main(String[] args)
{
int n=24;
if (0 <= n && n < 10) //범위는 조건이 두개이고, && 또는 or 조건
{
System.out.println("n은 0 이상 10미만의 수");
} //할일이 그냥 출력하는 것이므로 중괄호 {}안해도 됨
else if (10 <= n && n < 20)
{
System.out.println("n은 10이상 20미만의 수");
}
else if (20 <= n && n < 30)
{
System.out.println("n은 20이상 30미만의 수");
}
else
{
System.out.println("음수 혹은 30이상의 수");
}
}
}
Switch문
if문의 조건식과는 다르게 조건식의 결과가 int 범위 이하의 정수만 가능하고, 조건식의 계산결과와 일치하는 case문으로 이동하여 break문을 만달때까지 수행한다. 단, case문의 값으로 변수를 사용할 수 없다.
만약, 일치하는 case문이 없을 경우 default문으로 이동하는데.. 이때, default문은 생략할 수 없다.
기본구조는 다음과 같다
switch (조건식) {
case 값1 :
참일 때 할 일1
case 값2 :
참 일때 할 일2
default :
무조건 할 일
}
장점: 숫자값을 여러개 사용할 때는 if문보다 (보기)편하다.
단점: 숫자값만 쓸 수 있다
예제4, 5> 아래의 두 예제는 동일 한 듯 하지만..출력이 다르게 나타난다. 그 이유는 break가 있고 없고의 차이!
예제 6>
여기서 24를 10으로 나눈 int 값은 2이므로...
if문과 switch문의 비교
if문이 주로 사용되며 경우의 수가 많은 경우 switch문을 사용할 것을 고려한다.
모든 switch문은 if문으로 변경이 가능하지만, if문은 switch문으로 변경할 수 없는 경우가 많다
if문 보다 switch문이 더 간결하고 효율적이다.
'공부합시다' 카테고리의 다른 글
[이클립스] 초기(default) 소스 변경하기 (0) | 2015.06.05 |
---|---|
[JAVA] 생성자 (0) | 2015.05.07 |
[자바문법] 예제: 메소드, return, 구구단 (0) | 2015.05.07 |
[JAVA] break문, continue문 (0) | 2015.05.06 |
[JAVA] 반복문 - for, while, do-while (0) | 2015.05.06 |
[JAVA] [연산자3] 연산자 우선순위, 비교연산자 (0) | 2015.05.05 |
[JAVA] [연산자2] 단항연산자, 삼항연산자 (0) | 2015.05.05 |
[JAVA] [연산자1] 산술연산자, 대입연산자 (0) | 2015.05.05 |
[JAVA] 자바의 자료형 (0) | 2015.05.05 |
[자바문법] 기본자료형 - short, int, 8진수, 16진의 표현 (0) | 2015.05.05 |