Java 정리 05
19 Nov 2018
Reading time ~3 minutes
Java 정리 05 - 조건문 if, switch
제어문
- 조건문, 반복문, 분기문
- 조건문 - if, switch~case
- 반복문 - for, while, do~while
- 분기문 - break, continue
단일 IF문
- 조건에 맞는 경우에만 코드를 실행
if (조건식) {
// 조건에 맞을 때 수행 문장들
}
// 음수값을 양수로 만들기
public class TestIf {
public static void main(String[] args) {
int i = -10;
if (i < 0) {
i = -i;
}
System.out.println("i = " + i);
}
}
// 문자열을 비교할 땐 equals 메소드를 사용!
// 이름을 입력받아 이름이 "이재찬"이면 이름을 출력하기 전
// "반장"을 출력, 그렇지 않으면 이름만 출력
if (args[0].equals("이재찬")) {
System.out.print("반장 ");
}
System.out.println(args[0]);
// 숫자형태의 문자열을 정수로 변환
// Integer.parseInt() 메소드 사용
// 파라미터로 String 받아서 int를 반환
int i = Integer.parseInt(args[1]);
int j = Integer.parseInt(args[2]);
int r = Integer.parseInt(args[3]);
System.out.println(i+"+"+j+"+"+r+"="+(i+j+r));
public class TestIf3 {
// Constant는 Class Field에 정의
// Constant : 변수를 상수처럼 사용할 때 사용하는 변수
// 값을 변경하지 못함(final)
public static final int FLAG_VALUE = 1250;
public static final int FLAG_CNT = 20;
public static void main(String[] args) {
// args[0]를 입력받아 그 수가
// 20보다 작으면 1250과 입력값을 곱하여 출력
// 20보다 크다면 1250과 1250의 10%를 더한 값과 입력값을 곱하여 출력
int input = Integer.parseInt(args[0]);
int some_value = TestIf3.FLAG_VALUE;
if (input > TestIf3.FLAG_CNT) {
some_value = (int)(TestIf3.FLAG_VALUE
+ TestIf3.FLAG_VALUE*0.1);
}
System.out.println(some_value * input);
}
}
if ~ else
- 둘 중 하나의 코드를 실행할 때 사용
- 수행하는 행이 한행이라면 {} 생략 가능
// 조건에 맞을 때 수행할 문장들;
} else {
// 조건에 맞지 않을 때 수행할 문장들;
}
public class TestIfElse {
public static void main(String[] args) {
int i = -23;
System.out.println(i + " 는(은) ");
// 변수값이 음수인지 양수인지 판단
if (i < 0) {
System.out.println("음수");
} else {
System.out.println("양수");
}
// 변수값이 홀수인지 짝수인지 판단
if (i%2 == 0) {
System.out.println("짝수");
} else {
System.out.println("홀수");
}
// 변수값이 3의 배수라면 "3의 배수"을 출력
// 그렇지 않다면 변수값 출력
if (i%3 == 0) {
System.out.println("3의 배수");
} else {
System.out.println(i);
}
}
}
else if
- 연관된 여러 조건을 비교할 때 사용
if (조건식) {
// 조건에 맞을 때 수행문장
} else if (조건식) {
// 조건에 맞을 때 수행문장
} else if (조건식) {
// 조건에 맞을 때 수행문장
} else if (조건식) {
// 조건에 맞을 때 수행문장
} else {
모든 조건에 맞지 않을 때 수행할 문장;
}
// if else로 제한하여 0~100 사이 수 입력받기
public class TestElseIf {
public static void main(String[] args) {
int i = Integer.parseInt(args[0]);
System.out.println(i + "은(는) ");
if (i < 0) {
System.out.println("0보다 작아서 입력실패");
} else if (i > 100) {
System.out.println("100보다 커서 입력실패");
} else {
System.out.println("입력 성공");
}
}
}
public class TestElseIf3 {
public static void main(String[] args) {
// 태어난해를 입력받아 띠(12) 구하기
// 11-양, 10-말, 9-뱀, 8-용, 7-토끼,
// 6-호랑이, 5-소, 4-쥐, 3-돼지,
// 2-개, 1-닭, 0-원숭이
int input = Integer.parseInt(args[0]);
if (input%12 == 11) {
System.out.println("양");
} else if (input%12 == 10) {
System.out.println("말");
} else if (input%12 == 9) {
System.out.println("뱀");
} else if (input%12 == 8) {
System.out.println("용");
} else if (input%12 == 7) {
System.out.println("토끼");
} else if (input%12 == 6) {
System.out.println("호랑이");
} else if (input%12 == 5) {
System.out.println("소");
} else if (input%12 == 4) {
System.out.println("쥐");
} else if (input%12 == 3) {
System.out.println("돼지");
} else if (input%12 == 2) {
System.out.println("개");
} else if (input%12 == 1) {
System.out.println("닭");
} else {
System.out.println("원숭이");
}
}
}
swtich case
- 정수를 비교할 때 사용
- jdk 1.7부터는 문자열도 비교가능
- switch에 입력되는 변수의 데이터형은 byte, short, int, char, String
- case는 입력된 변수의 데이터형에 따라 다른 상수범위를 갖는다
switch(변수명) {
case 상수 : 수행문장;
case 상수 : 수행문장;
case 상수 : 수행문장;
break; // case 탈출
default : 일치하는 상수가 없을 때 수행 문장;
}
public class TestSwitchCase {
public static void main(String[] args) {
int i = 1;
switch(i) {
case 0 :
System.out.println("새벽");
case 1 :
System.out.println("아침");
break;
case 2 :
System.out.println("점심");
break;
default :
System.out.println("저녁");
break;
}
}
}