본문 바로가기
Example 2018

제어문연습프로젝트 - switch문(case문자열값, 과일 총구매)

by ZEROMI 2018. 4. 11.
728x90

package logic.testswitch;


import java.util.Scanner;


public class SwitchSample {

/* switch(변수 또는 계산식){  값이 뭐냐 (변수 == 값)

* case 값: 값이 맞았을 때 실행할 문장;  break;

* case 값: ............; break;

* ...

* default: 위에 제시된 모든 값이 아닐 때 실행할 문장;

* }

* default 는 사용 안 할수도 있음

* case 에 사용하는 값은 양수와 문자값, 문자열값

*/

public void test1(){

System.out.print("정수 하나 입력 : ");

int num = new Scanner(System.in).nextInt();

//num 변수가 가진 값이 뭐냐?

//if(num == 비교값){}

switch(num){

case 1: System.out.println("입장하세요.");

       break;

case 2: System.out.println("줄 서세요.");

       break;

case 3: System.out.println("퇴장하세요.");

       break;

default: System.out.println("즐겁게 구경하세요.");

}

}

/* 입력예 : 

* 첫번째 정수 : 25

* 두번째 정수 : 7

* 연산문자(+,-,*,/,%) : +

* 출력예 : 

* 25 + 7 = 32

* 연산문자에 따라 계산식이 출력되게 구현

*/

public void calculator(){

Scanner sc = new Scanner(System.in);

System.out.print("첫번째 정수 : ");

int first = sc.nextInt();

System.out.print("두번째 정수 : ");

int second = sc.nextInt();

System.out.print("연산문자(+,-,*,/,%) : ");

char op = sc.next().charAt(0);

int result;  

//지역변수(Local Variable)는 반드시 초기화함

switch(op){

case '+': result = first + second; break;

case '-': result = first - second; break;

case '*': result = first * second; break;

case '/': result = first / second;  break;

case '%': result = first % second; break;

default: System.out.println("잘못된 문자가 입력되었습니다.");

System.out.println("다시 입력하십시오.");

result = 0;

}

System.out.println(first + " " + op + " " +

second + " = " + result);

}

/* 과일명과 수량을 입력받아, 가격을 계산해서 출력

* (String) (int)

* 과일에 따라 한 개의 가격 저장용 변수 : 

* int price;

* 사과 1200

* 배    2500

* 포도 5000

* 오렌지 500

* 키위 350

* 그외 다른 과일은 0

* 총구매가격 : price * 수량

*/

public void test2(){

Scanner sc = new Scanner(System.in);

System.out.print("과일명 : ");

String fruitName = sc.next();

System.out.print("수량 : ");

int quantity = sc.nextInt();

int price;

switch(fruitName){

case "사과": price = 1200; break;

case "배": price = 2500; break;

case "포도": price = 5000; break;

case "오렌지": price = 500; break;

case "키위": price = 350; break;

default: price = 0;

}

System.out.println(fruitName + 

" 한 개의 가격은 " + price + "원");

System.out.println("총 구매가격 : " + 

         (price * quantity));

}

public void changeIfElse(){

Scanner sc = new Scanner(System.in);

System.out.print("과일명 : ");

String fruitName = sc.next();

System.out.print("수량 : ");

int quantity = sc.nextInt();

int price;

//클래스를 자료형으로 만들어진 변수

//   == 레퍼런스변수 라고 함

//기본 자료형 변수방에는 값이 기록됨

//레퍼런스변수 방에는 주소가 기록됨

if(fruitName.equals("사과"))

price = 1200;

else if(fruitName.equals("배"))

price = 2500;

else if(fruitName.equals("포도"))

price = 5000;

else if(fruitName.equals("오렌지"))

price = 500;

else if(fruitName.equals("키위"))

price = 350;

else price = 0;

System.out.println(fruitName + 

" 한 개의 가격은 " + price + "원");

System.out.println("총 구매가격 : " + 

         (price * quantity));

}

}













728x90