public class Pay {
public static void main(String[] args) {
int year = 5; //근무(경력) 년수
int child = 0; //자녀수
int pay = 1500000; //초봉 기본급
if (year == 0){
System.out.println("신입사원입니다.");
}else if (year == 1) {
pay = pay + 200000;
System.out.println("경력 1년 입니다.");
}else if(year == 2) {
pay = pay + 400000;
}else if(year == 3) {
pay = pay + 600000;
}else if(year == 4) {
pay = pay + 800000;
}else{
pay = pay + 1500000;
}
//자녀수당을 계산합니다.
if ( year >=1){
if (child > 1){
pay = pay + (child * 200000);
}
}
System.out.println("기본급: " + pay);
System.out.println("연 봉: " + (pay * 13));
System.out.println("월급여: " + ((pay * 13)/12));
}
}
제어문 - 분기문 (Switch)
수식의 결과가 일정한 수치 형태로 나열되어 있는 값과 비교하는 경우 사용합니다.
case문에 올수 있는 데이터 타입은 byte, char, short, int, long처럼 정수 형태만 올 수 있습니다.
SwitchTest.java
public class SwitchTest{ public static void main(String args[]){ int k = 1;
switch(k){
case 1:
System.out.println("1 입니다.");
break;
case 2:
System.out.println("2 입니다.");
break;
case 3:
System.out.println("3 입니다.");
break;
case 4:
System.out.println("4 입니다.");
break;
default:
System.out.println("1부터 4까지 입력해야 합니다.");
break;
}
}
}
SwitchTest2.java
public class SwitchTest2{
public static void main(String args[]){
char c = 'C';
String str = "C";
switch(c){ //정수 계열만 가능
case 'A': //65
System.out.println("입력된 코드는 A 입니다.");
break;
case 'B': //66
System.out.println("입력된 코드는 B 입니다.");
break;
case 'C':
System.out.println("입력된 코드는 C 입니다.");
break;
case 'D':
System.out.println("입력된 코드는 D 입니다.");
break;
default:
System.out.println("코드는 A부터 D까지 입력해야 합니다.");
break;
}
}
}
논리 연산자를 이용한 제어 조건의 이용
Short Circuit . ||: 좌측의 연산식의 결과가 참이면 우측의 연산을 검사하지 않고 참 처리합니다.
int a = 10; int b = 5;
a > b || c < d (a가 b보다 크거나 c가 d보다 클 때 )
. &&: 좌측의 연산식의 결과가 거짓이면 우측의 연산을 검사하지 않고 거짓 처리합니다.
int a = 5; int b = 10;
a > b && c < d
입력받은 값이 3의 배수이거나 5의 배수인 수를 판단하는 IF문의 사용
public class IfApp1{
public static void main(String args[]){
int k=101;
//논리 연산자 or의 사용
if((k % 3 == 0) || (k % 5 == 0)){
System.out.println("k의 값은:" + k + ": 3의 배수이거나 5의 배수입니다.");
}
else{
System.out.println("K의 값은 3의 배수이거나 5의 배수가 아닙니다.");
}
}
}
입력받은 값이 3의 배수이면서 5의 배수인 수를 판단하는 IF문의 사용
public class IfApp2{
public static void main(String args[]){
int k=90;
//논리 and 연산자
if(k % 3 == 0 && k % 5 == 0){
System.out.println("k의 값은:" + k + ": 3의 배수이면서 5의 배수입니다.");
}
else{
System.out.println("K의 값은 3의 배수이면서 5의 배수가 아닙니다.");
}
}
}
제어문 - 반복문 While, do-While, for 문
While 문
참일동안 실행합니다.
조건을 만족하지 않으면 한번도 실행을 안 합니다.
순환 횟수를 정확히 지정할 수 없을 경우 사용합니다.
While.java
public class While{
public static void main(String args[]){
int j = -5;
//j가 0보다 작을 동안 실행합니다.
while(j <= 0){
System.out.println("번호 : " + j);//-5, -4
j++;
if(j==-3) break;
}
System.out.println("--------- END ---------");
System.out.println("While 종료후 j의 값:" + j);
}
};
Unlimit.java
public class Unlimit {
public static void main(String[] args) {
int i=0;
while(true){
i = i + 1;
//2,3,4의 배수가 발견되면 while문을 벗어납니다.
if((i % 2 == 0) && (i % 3 == 0) && ( i % 4 == 0)){
break;
}
}
System.out.println("2,3,4의 배수는 " + i + " 입니다.");
}
}
do-While 문
조건에 관계 없이 무조건 1회는 실행합니다.
DoWhile.java
public class DoWhile{
public static void main(String args[]){
int j=1;
do{
System.out.println("번호 : " + j); //1
j++; //2
if(j == 5) break;
//j가 0보다 작을 동안 실행
}while(j < 0);
System.out.println("--------- END ---------");
System.out.println("do-while문 종료후의 j의 값:" + j);
}
};
public class Array {
public static void main(String[] args){
int[] pay = {1800, 2200, 2600, 3000, 3400, 3800};
// System.out.println(pay[0]); //pay 배열 index 0의 값
// System.out.println(pay[1]);
// System.out.println(pay[2]);
// System.out.println(pay[3]);
// System.out.println(pay[4]);
// System.out.println(pay[5]);
int i=0;
//i는 5보다 작거나 같을 경우 실행
for (i=0; i<=5; ++i){ //0,1,2,3,4,5,6
System.out.println(i + "년차 연봉: " + pay[i]);
}
System.out.println(i);
}
}
EvenSum.java(1부터 100까지 짝수의 합 구하기 (답 : 2550))
public class EvenSum {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i<=100; i++) {
if ((i%2)==0){
sum += i;
}
}
System.out.println("1부터 100까지 짝수의 합: " + sum);
}
}
▷ 홀수의 합을 구해 보세요. (2500 이 정답)
break, continue
for문의 break
Break.java
public class Break {
public static void main(String[] args) {
for (int i=0; i<=2; i++) { //3
//---------------------------------------
for (int j=2; j>=0; j--) { //3
// 출력하고 줄을 변경하지 않습니다.
System.out.print("i=" + i + " j=" + j);
System.out.print(" ");
// 출력하고 줄 변경
System.out.println("X-MAS");
if (j == 1){
System.out.println("j==1 break");
break;
}
}// END 안쪽 for문
//---------------------------------------
if ( i == 1){
System.out.println("i==1 break");
break;
}
}// END 바깥쪽 for문
}
}
continue
루틴을 벗어나지않고 특정 조건에서만 로직을 수행하지 않는 경우에 사용합니다.
Continue.java
public class Continue {
public static void main(String[] args) {
for (int i=0; i<=2; i++) {
// ┌ continue시 이동되는 곳
// ↓
for (int j=0; j<=2; j++) {
if (i==j){
continue;
}else{
System.out.println("i==" + i + " j==" + j);
}
}
}
}
}