관리 메뉴

Daily IT

5. if문 연습 본문

개발자 영역/자바

5. if문 연습

IT Knowledge Share 2020. 2. 24. 10:36
728x90

*참고*

도스창에서 사용자의 입력값을 받기

0. 문자열 받기: String 변수 = args[0]; //문자열 그대로 입력 받기.

1. 문자열을 정수로 받기: int 변수 = Integer.parseInt(args[1]); //여기서 인수로는 문자가 입력될 것임.
2. 정수를 문자열로 받기: String 변수 = Integer.valueOf(args[2]; //여기서 인수에는 숫자가 입력될 것임.

[실습 1] 하나의 수를 입력받아 2의 배수, 3의 배수, 4의 배수, 5의 배수인지 판단하는 프로그램을 제작하세요. 
- Hint: 참일 경우만 처리하는 4 개의 if 문 필요 
         정수형 변수 1개: 숫자 저장          
         Console에서 실행: java IfExam1 120
- 사용예) 인사 평가에서의 점수 누적

[실행 화면]
/ws_frame/If/bin>java IfExam1 10
정수: 10 
2의 배수
5의 배수 
 
/ws_frame/If/bin>java IfExam1 12
정수: 12 
2의 배수 
3의 배수 
4의 배수
 
/ws_frame/If/bin>java IfExam1 15
정수: 15 
3의 배수 
5의 배수
 
/ws_frame/If/bin>java IfExam1 120
정수: 120 
2의 배수 
3의 배수 
4의 배수
5의 배수
 
-------------------------------------------------------------------------------------
package If;

public class IfExam1 {

  public static void main(String[] args) {
    int number = Integer.parseInt(args[0]);
    
    if (number % 2 == 0) {
      System.out.println("2의 배수");
    }
    
    if (number % 3 == 0) {
      System.out.println("3의 배수");
    }
    
    if (number % 4 == 0) {
      System.out.println("4의 배수");
    }
    
    if (number % 5 == 0) {
      System.out.println("5의 배수");
    }

  }

}
-------------------------------------------------------------------------------------
   
   
 
[실습 2] 등수별 상품을 출력하는 프로그램을 제작하세요.


- 사용예) 이벤트 당첨자 산출

[실행 화면]
java If.IfExam2 1
등수: 1 상품: 노트북
 
java If.IfExam2 2
등수: 2 상품: 무한 복합 프린터
 
java If.IfExam2 3
등수: 3 상품: 그래픽카드
 
java If.IfExam2 4
등수: 4 상품: USB 디스크
 
java If.IfExam2 5
등수: 5 상품: 다음 기회에...
  

-------------------------------------------------------------------------------------  
package If;

public class IfExam2 {

  public static void main(String[] args) {
    int rank = Integer.parseInt(args[0]);
    String prize = "";
    
    if (rank == 1) {
      prize = "노트북";
    } else if (rank == 2) {
      prize = "무한 복합 프린터";
    } else if (rank == 3) {
      prize = "그래픽카드";
    } else if (rank == 4) {
      prize = "USB 디스크";
    } else {
      prize = "다음 기회에...";
    }
    
    System.out.println("등수: " + rank + " 상품: " + prize);

  }

}

-------------------------------------------------------------------------------------



[실습 3] 논리 연산자의 사용 실습
하나의 수를 입력받아 '1의자리', '10의 자리', '100의 자리', '1000의 자리'이상인지
출력하는 프로그램을 작성하세요(음수 제외). 

  
[실행 화면]
 
java If.IfExam3 5
정수: 5
결과: 1의 자리
 
java If.IfExam3 50
정수: 50
결과: 10의 자리
 
java If.IfExam3 500
정수: 500
결과: 100의 자리
 
java If.IfExam3 5000
정수: 5000
결과: 1000의 자리 이상
 
java If.IfExam3 -5000
정수: -5000
결과: 해당되는 자릿수가 없습니다.
 
 
-------------------------------------------------------------------------------------
package If;

public class IfExam3 {

  public static void main(String[] args) {
    int number = Integer.parseInt(args[0]);
    String digit = "";
    
    if (0< number && number < 10) {
      digit = "1의 자리";
    } else if (10 <= number && number <100) {
      digit = "10의 자리";
    } else if (100 <= number && number < 1000) {
      digit = "100의 자리";
    } else if (1000 <= number) {
      digit = "1000의 자리 이상";
    } else {
      digit = "해당되는 자릿수가 없습니다.";
    }
    
    System.out.println("정수: " + number);
    System.out.println("결과: " + digit);

  }

}

-------------------------------------------------------------------------------------
 
 
[실습 4] 월을 입력받아 관련 문자열을 출력하는 프로그램을 작성하세요. 

 
[실행 화면]
java If.IfExam4 8 
월: 8
결과: 호주
  
java If.IfExam4 11 
월: 11
결과: 괌
 
java If.IfExam4 12 
월: 12
결과: 제주도
  
-------------------------------------------------------------------------------------
package If;

public class IfExam4 {

  public static void main(String[] args) {
    int month = Integer.parseInt(args[0]);
    String trip = "";
    
    if (3 <= month && month <= 5) {
      trip = "캐나다";
    }
    
    if (6 <= month && month <= 8) {
      trip = "호주";
    } 
    
    if (month == 9 ) {
      trip = "터키"; 
    } else if (month == 10) {
      trip = "말레이시아";
    } else if (month == 11) {
      trip = "괌";
    }
    
    if (month == 12 || month == 1 || month == 2) {
      trip = "제주도";
    }
    
    System.out.println("월: " + month);
    System.out.println("결과: " + trip);

  }

}
-------------------------------------------------------------------------------------
 
 
 
[실습 5] KOSA(Korea Software Industry Association) 기준 개발자 경력별 등급을 출력하는 프로그램을 제작하세요.
(2012년 폐지되었으나 많은 중/대기업은 여전히 등급을 적용하고 있음)
- 변수
  경력(int): 0 ~
  등급(String): 초급 기술자 
  년봉(String): 2300 ~ 4500
 
 
[기준]
0 ~ 5년: 초급 기술자, 2300 ~ 4500  <-- String 타입으로 처리 가능
6 ~ 8년: 중급 기술자, 4500 ~ 5500
9 ~ 11년: 고급 기술자, 5500 ~ 6500
12년 이상: 특급 기술자, 6500 ~ 7500

[실행 화면]
 
java If.IfExam5 0
경력: 0 년
등급: 초급 기술자
년봉: 2300 ~ 4500 
 
java If.IfExam5 6
경력: 6 년
등급: 중급 기술자
년봉: 4500 ~ 5500 
 
java If.IfExam5 9
경력: 9 년
등급: 고급 기술자
년봉: 5500 ~ 6500
 
java If.IfExam5 12
경력: 12 년
등급: 특급 기술자
년봉: 6500 ~ 7500
 
-------------------------------------------------------------------------------------
package If;

public class IfExam5 {

  public static void main(String[] args) {
    int exp = Integer.parseInt(args[0]);
    String grade = "";
    String salary = "";
    
    if (0<= exp && exp <= 5) {
      grade = "초급 기술자";
      salary = "2300~4500";
    } else if (6<= exp && exp <= 8) {
      grade = "중급 기술자";
      salary = "4500~5500";
    } else if (9<= exp && exp <= 11) {
      grade = "고급 기술자";
      salary = "5500~6500";
    } else if (12<= exp) {
      grade = "특급 기술자";
      salary = "6500~7500";
    }

    System.out.println("경력: " + exp);
    System.out.println("등급: " + grade);
    System.out.println("년봉: " + salary);
    
    if (exp < 0) {
      System.out.println("정수값만 입력하세요");
    }

  }

}

-------------------------------------------------------------------------------------
       
  
  
   
[실습 6] 노트북 견적을 산출하세요.

1) 객체 형태의 문자열 비교 방법
    String str = args[0];
    if (str.equals("i3")) { ....
    또는
    if (str.equals("i3") == true) { ....

2) 상수 형태의 문자열 비교 방법(배열 및 new를 이용한 문자열 생성에서는 에러 발생)
    String str = "i3";
    if (str == "i3") { ....

- 변수: 상품명, CPU 가격, 결재 금액

CPU 가격표 
------------------
i3: 100,000 원
i5: 150,000 원
i7: 200,000 원
  
 
[실행 화면]
java If.IfExam6 i3
CPU: i3 100000 원
------------------------
결재 금액: 100000 원
 
java If.IfExam6 i5
CPU: i5 150000 원
------------------------
결재 금액: 150000 원
  
java If.IfExam6 i7

CPU: i7 200000 원
------------------------
결재 금액: 200000 원
  
-------------------------------------------------------------------------------------
package If;

public class IfExam6 {

  public static void main(String[] args) {

    String cpu = args[0];
    String cpuPrice = "";

    if (cpu.equals("i3")) {
      cpuPrice = "100,000원";
    }
    if (cpu.equals("i5")) {
      cpuPrice = "150,000원";
    }
    if (cpu.equals("i7")) {
      cpuPrice = "200,000원";
    }

    System.out.println("CPU :" + cpu + " " + cpuPrice);
    System.out.println("--------------");
    System.out.println("결재 금액 : " + cpuPrice);

  }

}
-------------------------------------------------------------------------------------
 
 
 
[실습 7] 노트북 견적을 산출하세요.
- 변수: CPU 상품명, RAM 상품명, CPU 가격, RAM 가격, 결제 금액

CPU 가격표 
------------------
i3: 100,000 원
i5: 150,000 원
i7: 200,000 원
 
RAM 기가당 1만원, 8 X 10000  →  80,000 원
 
[실행 화면]
java If.IfExam7 i3 8
CPU: i3 100000 원
RAM: 8G 80000 원
------------------------
결재 금액: 180000 원
  
java If.IfExam7 i5 8
CPU: i5 150000 원
RAM: 8G 80000 원
------------------------
결재 금액: 230000 원
 
java If.IfExam7 i7 8
CPU: i7 200000 원
RAM: 8G 80000 원
------------------------
결재 금액: 280000 원
 
-------------------------------------------------------------------------------------
public class IfExam7 {

  public static void main(String[] args) {
    String cpu = args[0];
    int ram = Integer.parseInt(args[1]);
    int cpu_price = 0;
    int ram_price = ram * 10000 ;
    
    if (cpu.equals("i3")) {
      cpu_price = 100000 ;
    } else if (cpu.equals("i5")) {
      cpu_price = 150000 ;
    } else if (cpu.equals("i7")) {
      cpu_price = 200000 ;
    }
    
    System.out.println("CPU : " + cpu + " " + cpu_price + "원");
    System.out.println("RAM : " + ram + "G " + ram_price);
    System.out.println("-------------------");
    System.out.println("결제 금액 : " + (cpu_price+ram_price) + "원");
  }

}
-------------------------------------------------------------------------------------
 
 
 
 
[실습 8] 노트북 견적을 산출하세요.
- 변수: CPU 상품명, RAM 상품명, SSD 상품명, CPU 가격, RAM 가격, SSD 가격, 결재 금액

CPU 가격표 [실제 CPU 가격과 다름]
------------------
i3: 100,000 원
i5: 150,000 원
i7: 200,000 원
 
RAM 기가당 1만원 8 X 10000  →  80,000 원

128SSD or 128ssd: 100,000 원
256SSD or 256ssd: 150,000 원
512SSD or 512ssd: 200,000 원

[실행 화면]
java If.IfExam8 i3 8 128SSD
CPU: i3 100000 원
RAM: 8G 80000 원
SSD: 128SSD 100000 원
------------------------
결재 금액: 280000 원
 
java If.IfExam8 i5 8 256ssd
CPU: i5 150000 원
RAM: 8G 80000 원
SSD: 256ssd 150000 원
------------------------
결재 금액: 380000 원
 
java If.IfExam8 i7 8 512SSD
CPU: i7 200000 원
RAM: 8G 80000 원
SSD: 512SSD 200000 원
------------------------
결재 금액: 480000 원
 

-------------------------------------------------------------------------------------
public class IfExam8 {

  public static void main(String[] args) {
    String cpu = args[0];
    int ram = Integer.parseInt(args[1]);
    String ssd =  args[2];
    
    int cpu_price = 0;
    int ram_price = ram * 10000;
    int ssd_price =  0;   
    int tot = 0;
  
    if (cpu.equals("i3")) {
      cpu_price = 100000 ;
    } else if (cpu.equals("i5")) {
      cpu_price = 150000 ;
    } else if (cpu.equals("i7")) {
      cpu_price = 200000 ;
    }
    if (ssd.equals("128SSD") || ssd.equals("128ssd")) {
      ssd_price = 100000;
    } else if (ssd.equals("256SSD") || ssd.equals("256ssd")) {
      ssd_price = 150000;
    } else if (ssd.equals("512SSD") || ssd.equals("512ssd")) {
      ssd_price = 200000;
    }
    
    tot = cpu_price+ram_price+ssd_price;
    
    System.out.println("CPU : " + cpu + " " + cpu_price + "원");
    System.out.println("RAM : " + ram + "G " + ram_price+ "원");
    System.out.println("ssd : " + ssd +" " + ssd_price+ "원");
    System.out.println("-------------------");
    System.out.println("결제 금액 : " + tot + "원");
  }
}
-------------------------------------------------------------------------------------
 
 
 
[실습 9] 노트북 견적을 산출하세요.
- 기타 비용을 370000 만원을 책정합니다.
- 결재 비용이 70만원을 넘어가면 5% 할인합니다.
- 변수: CPU 상품명, RAM 상품명, SSD 상품명, CPU 가격, RAM 가격, SSD 가격, 기타 비용, 결재 금액

CPU 가격표 [실제 CPU 가격과 다름]
------------------
i3: 100,000 원
i5: 150,000 원
i7: 200,000 원

RAM 기가당 1만원 8 X 10000  →  80,000 원

128SSD or 128ssd: 100,000 원
256SSD or 256ssd: 150,000 원
512SSD or 512ssd: 200,000 원

[실행 화면]
java If.IfExam9 i3 4 256SSD   ←  CPU, RAM, SSD 

CPU: i3 100000 원
RAM: 4G 40000 원
SSD: 256SSD 150000 원
기타비용: 370000 원
-----------------------
결재금액: 660000 원

 
java If.IfExam9 i5 8 512SSD   ←  CPU, RAM, SSD 

CPU: i5 150000 원
RAM: 8G 80000 원
SSD: 512SSD 200000 원
기타비용: 370000 원  
-----------------------
결재금액: 800000 원
할인가격: 760000 원  ← 800000 원이나 800000 - 40000 = 760000 ← 5 % 할인, if
 
-------------------------------------------------------------------------------------
public class IfExam9 {

  public static void main(String[] args) {
    String cpu = args[0];
    int ram = Integer.parseInt(args[1]);
    String ssd = args[2];
    int cost_c = 0, cost_r = ram * 10000, cost_s = 0, cost_e = 370000;
    if(cpu.equals("i3") || cpu.equals("i5") || cpu.equals("i7")) {
      if(ram > 0 && ram % 2 == 0) {
        if (ssd.equals("128SSD") || ssd.equals("128ssd") ||
            ssd.equals("256SSD") || ssd.equals("256ssd") ||
            ssd.equals("512SSD") || ssd.equals("512ssd")) {
          
          if(cpu.equals("i3")) {
            cost_c = 100000;
          }
          if(cpu.equals("i5")) {
            cost_c = 150000;
          }
          if(cpu.equals("i7")) {
            cost_c = 200000;
          }
          
          if(ssd.equals("128SSD") || ssd.equals("128ssd")) {
            cost_s = 100000;
          }
          if(ssd.equals("256SSD") || ssd.equals("256ssd")) {
            cost_s = 150000;
          }
          if(ssd.equals("512SSD") || ssd.equals("512ssd")) {
            cost_s = 200000;
          }
          
          int total_cost = cost_c + cost_r + cost_s + cost_e; //합산
          
          //최종 출력
          System.out.println("CPU: " + cpu + " " + cost_c + " 원");
          System.out.println("RAM: " + ram + "G " + cost_r + " 원");
          System.out.println("SSD: " + ssd + " " + cost_s + " 원");
          System.out.println("기타비용: " + cost_e + " 원");
          System.out.println("-----------------------");
          System.out.println("결제금액: " + total_cost + " 원");
          
          if(total_cost >= 700000) { //70만원 이상 구매시 5%할인
            total_cost -= total_cost * 0.05;
            System.out.println("할인가격: " + total_cost + " 원");
          }
          
        } else {
          System.out.println("잘못된 SSD 값 입력입니다.");
          System.out.println("\'용량SSD\'의 형식으로 입력해주세요. (선택 가능 용량: 128 / 256 / 512)");
        }
      } else {
        System.out.println("잘못된 ram 값 입력입니다.");
        System.out.println("ram 용량은 짝수로 입력해 주세요.");
      }
    } else {
      System.out.println("잘못된 cpu 값 입력입니다.");
      System.out.println("i3, i5, i7 제품군 중에서 입력해 주세요.");
    }
  }

}
-------------------------------------------------------------------------------------

'개발자 영역 > 자바' 카테고리의 다른 글

6. if문 연습2  (0) 2020.02.24
4. if문  (0) 2020.02.24
3. 자바 구조/컴파일/자바 타입/연산자/사칙연산  (0) 2020.02.23
2. 이클립스 설치  (0) 2020.02.23
1. 자바 설치 및 삭제  (0) 2020.02.23
Comments