1012

란이:)·2022년 10월 13일
0

공부일지

목록 보기
5/30

논스태틱 -> 객체를 생성
반환값 String에는 return을 주어야함
String 문자 출력
Calculator calc = new Calculator(); 이거는 같은클래스면 한번만 사용해도 됨
문제 깃랩
Calculator
package com.greedy.level01.basic;

public class Calculator {

// 반환값 : x
// 메소드명 : checkMethod
// 호출하면 "메소드 호출 확인"을 출력하는 기능의 메소드

public void checkMethod() {
	
	System.out.println("메소드 호출 확인");
}
	

// 반환값 : String
// 메소드명 : sumTwoNumber
// 두개의 전달인자를 받아 두수의 합을 반환
// 출력의 내용은 "10과 20의 합은 30입니다." 라는 문장을
// 출력하는 기능

public String sumTwoNumber(int first , int second) {
	
	String result = first + "과" + second + "의 합은" + (first + second) + " 입니다.";
    return result;
}

// 반환값 : String
// 메소드명 : multiTwoNumber
// 두개의 전달인자를 받아 두수의 곱을 반환
// 출력의 내용은 "10과 20의 곱은 200입니다." 라는 문장을
// 출력하는 기능

public String multiTwoNumber(int first , int second) {
	
	String result1 = first + "과 " + second + "의 곱은 " + (first * second) + "입니다.";
	
	return result1;
}

}

applicaiton1
package com.greedy.level01.basic;

public class Application1 {

/* 실행용 메소드 */
public static void main(String[] args) {
	
	// Calculator 클래스의 메소드를 호출 해서 실행
	
	/*non-static 메소드 실행*/
	Calculator calc = new Calculator();
	calc.checkMethod();
	
	
	int first = 10;
	int second = 20;
	
	String result = calc.sumTwoNumber(first, second);
	System.out.println(result);
	

// System.out.println(calc.sumTwoNumber(10, 20)); 이걸로 한번에 가능

	String result1 = calc.multiTwoNumber(first, second);
	
	System.out.println(result1);
}

}

-> 메소드 호출 확인
10과20의 합은30 입니다.
10과 20의 곱은 200입니다.

RandomMaker
package com.greedy.level01.normal;

import java.util.Random;

public class RandomMaker {

/* 
 * static 메소드로 생성
 * 반환형 : String
 * 메소드명 : rockPaperScissors
 * 
 * 가위,바위,보 중에 하나를 출력
 * (가위,바위,보 는 난수를 이용하여 구현)
 * 
 * -- 출력 --
 * 가위
 * */

public static String rockPaperScissors() {
	
	int random = (int)(Math.random() * 3); // 012로 할경우  
	//int random = new Random().nextInt(3); 으로 사용도 가능
	System.out.println("random : " + random);
	
	String result = (random == 0)? "가위" : (random == 1)? "바위" : "보";
	
	return result;
	
	
}

/* 
 * static 메소드로 생성
 * 반환형 : String
 * 메소드명 : tossCoin
 * 
 * 동전 앞/뒤 중에 하나를 출력
 * (앞면,뒷면은 난수를 이용하여 구현)
 * 
 * -- 출력 --
 * 앞면
 * 
 * */

public static String tossCoin() {
	
	int random = new Random().nextInt(2);
	System.out.println("random : " + random);
	
	String result = (random == 0)? "앞면" : "뒷면";
	
	return result;
}

}

application 1

package com.greedy.level01.normal;

public class Application1 {

/* 실행용 메소드 */
public static void main(String[] args) {
	
	/* RamdomMaker 클래스의 메소드를 호출해서 실행 */
	/*static 메소드
	 * 클래스명. 메소드명();
	 * */
	
	 System.out.println(RandomMaker.rockPaperScissors());
	 System.out.println(RandomMaker.tossCoin());
}

}

-> random : 1
바위
random : 0
앞면

가위바위보 아무기준으로 순서와 숫자를 정하면 됨 123 이런식으로 012

import static com.greedy.level01.normal.RandomMaker.tossCoin;
System.out.println(tossCoin()); // import 사용시 syso에 랜던메이커를 안넣어도 됨

application1

package com.greedy.level01.normal;

public class Application1 {

/* 실행용 메소드 */
public static void main(String[] args) {
	
	/* RamdomMaker 클래스의 메소드를 호출해서 실행 */
	/*static 메소드
	 * 클래스명. 메소드명();
	 * */
	
	 System.out.println(RandomMaker.rockPaperScissors());
	 System.out.println(RandomMaker.tossCoin());
}

}
-> random : 1
바위
random : 0
앞면

구글 java api 11 검색

java base java util scanner

com.greedy.section03.api.scanner pacakage

application 1

밑에 빨간색 사각형 불이 들어오면 실행이 되었다는 뜻

package com.greedy.section03.api.scanner;

import java.util.Scanner;

public class Application1 {

public static void main(String[] args) {
	
	/*java.util.Scanner를 이용한 다양한 자료형 값 입력 받기*/
	
	/*1. Scanner 객체 생성*/

// java.util.Scanner sc = new java.util.Scanner(java.lang.System.in);

	/*java.lnag은 패키지이름을 생략가능하다.*/

// java.util.Scanner sc = new java.util.Scanner(System.in);

	/*import 구문으로 다른 패키지에 있는 클래스 사용시 패키지명을 생략할 수 있다*/
	/* Ctrl + Shift + o*/
	Scanner sc = new Scanner(System.in);

	/*2. 자료형별 값 입력받기*/
	/* nextLine() : 입력받은 값을 문자열로 반환해준다.*/
	System.out.print("이름을 입력하세요 : ");
	String name = sc.nextLine();
	System.out.println("입력하신 이름은 " + name + " 입니다.");
	
	/*nextInt() : 입력받은 값을 int형으로 반환해준다.
	 * 
	 * int 범위를 초과한 값을 입력받게 되면 InputMismatchException이 발생한다.
	 * */
	System.out.print("나이를 입력하세요 : ");
    int age = sc.nextInt();
    System.out.println("입력하신 나이는 : " + age + "입니다.");
    
    /*nextLong() : 입력받은 값을 long형으로 반환*/
    System.out.print("금액을 입력해주세요 : ");
    long money = sc.nextLong();
    System.out.println("입력하신 금액은 " + money + "원 입니다.");
    
    /*nextFloat() :  입력받은 값을 float 형으로 반환한다.*/
    System.out.print("키를 입력하세요 :");
    float height = sc.nextFloat();
    System.out.println("입력하신 키는 " + height + "cm 입니다.");
    
    /*nextDouble() :  입력받은 값을 double형으로 반환한다*/
    System.out.print("원하는 실수를 입력하세요 : ");
    double number = sc.nextDouble();
    System.out.println("입력하신 실수는 " + number + " 입니다.");
    
    /*nextBoolean() : 입력받은 값은 boolean형으로 반환한다.
     * true of false만 가질수 있다.
     * */
    System.out.print("참과 거짓 중에 한가지를 true or false로 입력해주세요 : ");
    boolean isTrue = sc.nextBoolean();
    System.out.println("입력하신 논리값은 " + isTrue + "입니다.");
    
    sc.nextLine(); // 이건 뒤에서 추가설명
    
    /*문자 입력받기*/
    System.out.print("아무 문자나 입력 해주세요 : ");
    char ch = sc.nextLine().charAt(0);
    System.out.println("입력하신 문자는" + ch + "입니다.");
    		
    // hello문자열-> 0번째 index : h
    //             1번째 index : e
    //             2번째 index : l
    //             3번째 index : l
    //             4번째 index : o
    /*java.lang.String에 charAt(int index)를 사용
     * index를 정수형으로 입력하면 해당문자열에서 지정한 인덱스에 있는 한 문자를 문자형으로 반환
     * 해주는 기능
     * */	
    
    sc.close();
    
    
	
}

}
이름을 입력하세요 : 민
입력하신 이름은 민 입니다.
나이를 입력하세요 : 24
입력하신 나이는 : 24입니다.
금액을 입력해주세요 : 100
입력하신 금액은 100원 입니다.
키를 입력하세요 : 176
입력하신 키는 176.0cm 입니다.
원하는 실수를 입력하세요 : 1.245
입력하신 실수는 1.245 입니다.
참과 거짓 중에 한가지를 true or false로 입력해주세요 : true
입력하신 논리값은 true입니다.
아무 문자나 입력 해주세요 : love
입력하신 문자는l입니다.

application2
package com.greedy.section03.api.scanner;

import java.util.Scanner;

public class Application2 {

public static void main(String[] args) {
	
	/*Scanner의 nextLine()와 next()
	 * nextLine() : 공백을 포함한 한 줄을 입력을 위한 개행문자(\n, enter키) 전까지 읽어서 문자열로 반환한다.
	 *              (공백문자 포함)
	 * next() : 공백문자나 개행문자 전까지를 읽어서 문자열로 반환한다.(공백문자 포함하지 않는다)
	 * */
	
	Scanner sc = new Scanner(System.in);
	
	/*,nextLine()*/
	System.out.print("인사말을 입력하세요 : ");
	String greeting1 = sc.nextLine(); // 안녕하세요 반갑습니다
	
	System.out.println(greeting1);
	
	/*next()*/
	System.out.print("인사말을 입력하세요 : "); // 안녕하세요 반갑습니다
	String greeting2 = sc.next();
	
	System.out.println(greeting2);
	String greeting3 = sc.next();
	System.out.println(greeting3);
}

}
->인사말을 입력하세요 : 안녕하세요 반갑습니다
안녕하세요 반갑습니다
인사말을 입력하세요 : 안녕하세요 반갑습니다
안녕하세요
반갑습니다

application3

line 은 한줄라인 전체를 들고와서 가져온다

package com.greedy.section03.api.scanner;

import java.util.Scanner;

public class Application3 {

public static void main(String[] args) {
	
	/*스캐너의 주의 사항
	 * 
	 * 스캐너의 next 메소드들은 입력한 내용을 버퍼로부터 토큰 단위로 분리해서 읽어온다.
	 * 그래서 크게 두 가지 사항을 주의해야 한다.
	 * 1. next()로 문자열 입력 받은 후 정수(nextInt()), 
	 * 실수(nextDouble()...), 논리값(nextBoolean()) 입력받을 때
	 * */
	
	Scanner sc = new Scanner(System.in);
	
	System.out.print("문자열을 입력해주세요 :");
	String str1 = sc.nextLine();
	System.out.println("str1 : " + str1);
	

// sc.nextline(); 위에 next로 썼을 경우 아래에 nextLine을 써주어도 됨

	System.out.print("숫자를 입력해주세요 : ");
	int num1 = sc.nextInt();
	System.out.println("num1 : " + num1);
	
	System.out.print("다시 숫자를 입력해주세요:");
	int num2 = sc.nextInt();
	System.out.println("num2 : " + num2);
	
	System.out.print("공백이 있는 문자열을 하나 입력해주세요 : ");
	
	sc.nextLine();
	String str2 = sc.nextLine();
	System.out.println("str2 : " + str2);
	
}

}

->문자열을 입력해주세요 : 안녕하세요 반갑습니다
str1 : 안녕하세요 반갑습니다
숫자를 입력해주세요 : 25
num1 : 25
다시 숫자를 입력해주세요:5
num2 : 5
공백이 있는 문자열을 하나 입력해주세요 : ㅇㄹ ㅇ ]
str2 : ㅇㄹ ㅇ ]

제어문
projcet chap04-control-flow-statement-lecture-source
(언더바는 별로 좋지 않다)
package com.greedy.section01.conditional_statement

class application1 (실행형)
A_if ( 기능형)

브레이스는 시작점과 같은 라인으로 맞추어라
코드는 4칸 들여쓰기를 한다

package com.greedy.section01.conditional_statement;

import java.util.Scanner;

public class A_if {

//메소드 주석 생성 단축키 : alt + shift + j
/**
 * <pre>
 * 단독 if문 실행 흐름을 확인하기 위한 용도의 기능을 제공
 * 정수 짝수여부 판단 확인용
 * </pre>
 */
public void testSimpleIfStatment() {
	
	/*[if문 표현식]
	 * if(조건식) { 
	 *    조건식이 true일때 실행할 명령문;
	 * }
	 *  
	 * 조건식 : true or false가 나오는 연산식을 조건식이라고 한다.
	 * 
	 * if문은 조건식의 결과값이 참(true)이며 { } 안에 코드를 실행하고,
	 * 조건식의 결과 값이 거짓(false)이면 {} 안에 있는 코드를 무시하고 넘어간다.
	 * */
     
     /*조건을 만족하는 경우에만 추가적인 명령을 실행하고자 할 때 주로 사용*/
     
	/* 정수 한 개를 입력 받아 그 수가 짝수이면 "입력하신 숫자는 짝수입니다."
	 * 라고 출력하고, 짝수가 아니면 출력하지 않는 구문을 작성해보자
	 * 
	 * 단, 조건과 상관없이 프로그램이 종료될 때 "프로그램을 종료합니다"라고 출력되도록 한다.
	 * */
	
	
	Scanner sc = new Scanner(System.in);
	
	System.out.println("숫자 한 개를 입력하세요 : ");
	int num = sc.nextInt();
	
	if(num % 2 == 0) { // 어떤수를 2로 나누었을 때 나머지가 0이면 짝수이다.
		
		System.out.println("입력하신 숫자는 짝수입니다.");
		
	}
	System.out.println("프로그램을 종료합니다.");
	
	sc.close();
	 
}
	
/**
 * <pre>
 * 중첩 if 구문 흐름을 확인하기 위한 용도의 메소드
 * 양의 정수 짝수인지 여부 판단 확인용
 * </pre>
 */
public void testNestedIfStatement() {
	
	/* 중첩된 if문 실행 흐름 확인
	 * if문 안에서 또 다른 조건을 사용하여 if문을 사용할 수 있다.
	 * */
	
	/* 정수 한 개를 입력 받아 그 수가 양수인 경우에만 짝수인지를 확인하여
	 * 짝수이면 "입력하신 숫자는 양수이면서 짝수입니다."라고 출력하고,
	 * 둘 중 하나라도 해당하지 않으면 아무 내용도 출력하지 않는 구문을 작성해보자.
	 * 단, 조건과 상관없이 프로그램이 종료될 때 "프로그램을 종료합니다"라고 출력되도록 한다.
	 * */
	
	/*정수 한개를 입력받아*/
	Scanner sc = new Scanner(System.in);
	
	System.out.println("숫자를 한 개 입력하세요 : ");
	int num = sc.nextInt();
	
	/* 그 수가 양수인지 확인*/
	if(num > 0) {
		
		/*양수이면 짝수인지 확인*/	
		if(num % 2 == 0 ) {
			
			System.out.println("입력하신 숫자는 양수이면서 짝수입니다.");
		}
	}
	
	System.out.println("프로그램을 종료합니다.");
	
	
	
}
	
	

}

package com.greedy.section01.conditional_statement;

public class Application1 {

public static void main(String[] args) {
	
	A_if a = new A_if();
	
	a.testSimpleIfStatment();
    
    B_ifElse b = new B_ifElse();
	b.testSimpleIfElseStatment();
    C_ifElse c = new C_ifElse();
    //c.testSimpleIfElsement();
	
	c.testNestedIfElseStatment();
    D_switch d = new D_switch();

// d.testSimpleSwitchStatement();
d.testSwitchVendingMachine();

}

}

숫자 한 개를 입력하세요 :
2
입력하신 숫자는 짝수입니다.
프로그램을 종료합니다.

close는 열려있는 모든통로를 다 닫음

class B_ifElse

package com.greedy.section01.conditional_statement;

import java.util.Scanner;

public class B_ifElse {

/**
 * <pre>
 * 단독 if-else 구문 흐름을 확인하기 위한 용도의 메소드.
 * 정수 홀수 짝수 판별용 기능 제공용
 * </pre>
 */
	
	public void testSimpleIfElseStatment() {
		
		/*
		 * [if-else문 표현식]
		 * if(조건식) {
		 *      조건식이 true일 때 실행할 명령문;
		 * } else {
		 *   조건식이 false일 때 실행할 명령문;
		 * }
		 * */
		
		/*
		 * if문은 조건식의 결과 값이 참(true)이며 if {}안에 있는 코드를 실행하고,
		 * 조건식의 결과 값이 거짓(false)이면 else {} 안에 있는 코드를 실행한다.
		 *  */
		
		/*조건을 만족하는지 여부에 따라 둘 중 하나는 무조건 실행해야 하는 경우 많이 사용된다.*/
		
		/*정수 한개를 입력 받아 그 수가 홀수 이면 "입력하신 숫자는 홀수입니다" 라고 출력하고
		 * 홀수가 아니면 "입력하신 숫자는 짝수입니다"라고 출력하는 프로그램을 작성해보자
		 * 단, 조건과 상관없이 프로그램이 종료될 때 "프로그램을 종료합니다" 라고 출력되도록 한다.
		 * 
		 * */
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("정수를 하나 입력하세요 :");
		int num = sc.nextInt();
		
		if(num % 2 !=0) {
			System.out.println("입력하신 정수는 홀수입니다.");
		}   else {
		       System.out.println("입력하신 정수는 짝수입니다.")
				;
	    }
		System.out.println("프로그램을 종료합니다");
		sc.close();
		
		
		
	}
	   
	  /**
	 * <pre>
	 *  중첩 if-else 구문 흐름을 확인하기 위한 용도의 메소드
	 *  정수 양수 or 음수 or 0 중 한 가지 인지 판별용 기능 제공
	 *  </pre>
	 */
	public void testNestedIfElseStatment() {
		  
		/* 숫자를 하나 입력받아 양수이면 "입력하신 숫자는 양수입니다"라고 출력하고,
		 * 음수이면 "입력하신 숫자는 음수입니다" 출력
		 * 단, 0이면 "0입니다"라고 출력하세요.
		 * 조건과 상관없이 프로그램이 종료될 때 "프로그램을 종료합니다" 라고 출력되도록 한다.
		 * */
		Scanner sc = new Scanner(System.in);
		
		System.out.println("정수를 하나 입력하세요 : ");
		int num = sc.nextInt();
		
		if(num != 0 ) {
		       //0이 아닌 수 (양수, 음수)
			   if(num > 0) {
				   
				   System.out.println("입력하신 숫자는 양수입니다.");

		       } else {
			       System.out.println("입력하신 숫자는 음수입니다.");
		       }	       
		} else {
		 
			//0일때
			System.out.println("입력하신 숫자는 0 입니다.");
		
	  }
	  System.out.println("프로그램을 종료합니다.");
	  
	  sc. close();
}

}

C-ifElse

단일 if문 if문 마다 다 체크
if-else-if 성립되는 구간 있으면 그이후부터는 체크 안함
조건문 위에 변수를 쓴 이유는 범위 때문에 지역변수!
com.greedy.section01.conditional_statement;

import java.util.Scanner;

public class C_ifElse {

/**
 * <pre>
 *     단독 if-else-if문 실행흐름 확인하기 위한 용도의 기능을 제공
 * </pre>
 */
/**
 * 
 */
/**
 * 
 */
/**
 * 
 */
/**
 * 
 */
public void testSimpleIfElsement() {
	
	
	/*
	 * [if-else-if문 표현식]
	 * if(조건식1) {
	 *     조건식1이 true일 때 실행할 명령문;
	 * } else if(조건식2) {
	 *     조건식1이 false이고 조건식2가 true일 때 실행할 명령문;
	 * } else {
	 *      위의 조건 2개 모두 거짓(false)인경우 실행할 명령문;
	 * }
	 * 
	 * 마지막 else 구문은 생략이 가능
	 * */
	
	/*여러 개의 조건을 제시하여 그 중 한가지를 반드시 실행시키고 싶은 경우 사용한다.*/
	
	System.out.println("산 속에서 나무를 하던 나무꾼이 연못에 도끼를 빠드리고 말았다.");
	System.out.println("연못에서 산신령이 나타나 금도끼, 은도끼, 쇠도끼를 들고 나타났다.");
	System.out.println("나무꾼에게 셋 중 어떤 도끼가 나무꾼의 도끼인지 물어보았다. ");
	
	System.out.print("어느 도끼가 너의 도끼이니? (1. 금도끼, 2. 은도끼, 3.쇠도끼) : ");
	Scanner sc = new Scanner(System.in);
	int answer = sc.nextInt();
	
	if(answer == 1) {
		
		System.out.println("이런 거짓말 쟁이! 너에게는 아무런 도끼도 줄 수 없구나!!!!");
	} else if(answer == 2) {
		
		System.out.println("욕심이 과하지는 않지만 그래도 넌 거짓말을 하고 있구나!!! 어서 썩 꺼지거라");
	} else {
		
		System.out.println("오호~ 정직하구나 여기있는 금도끼, 은도끼, 쇠도끼를 다 가져가거라!!");
	}
	
	System.out.println("그렇게 산신령은 다시 연못 속으로 사라지고 말았다......");
	
	sc.close();
}
	/**
	 * <pre>
	 * 중첩 if-else-if 구문 흐름을 확인하기 위한 용도의 기능을 제공
	 * </pre>
	 */
	public void testNestedIfElseStatment() { 
		
		/*
		 * greedy 대학교의 유xx교수님은 학생들 시험 성적을 수기로 계산해서 학점 등급을 매기는 채점방식을
		 * 사용하고 있었다.
		 * 90점 이상이면 'A', 80점 이상이면 'B', 70점 이상이면 'C', 60 점 이상이면 'D'를
		 * 60점 미만인 경우에는 'F'를 학점 등급으로 하는 기준이다.
		 * 추가로 각 등급의 중간점수 (95,85,75..)인 경우 '+'를 붙여서 등급을 세분화하다보니 신경쓸게
		 * 이만 저만이 아니다.
		 * 그래서 학생의 이름과 점수를 입력하면 자동으로 학점 등급이 계산되는 프로그램을 만들기로 했다.
		 * */
		
		/* 학생의 이름과 점수 입력*/
		/*
		 * 이상 >=
		 * 이하 <=
		 * 초과>
		 * 미만<
		 * */
		Scanner sc = new Scanner(System.in);
		System.out.println("학생의 이름을 입력하세요 : ");
		String name = sc.nextLine();
		System.out.println("학생의 점수를 입력하세요 : ");
		int point = sc.nextInt();
		
		String grade = ""; // 학생의 등급을 저장하기 위한 변수 선언및초기화
	      if(point >= 90) {
	         grade = "A";
	               
	         if(point >= 95) {
	            grade += "+"; // grade = grade + "+";
	         }
	      } else if(point >= 80) {
	         
	         grade = "B";
	         
	         if(point >= 85) {
	            grade += "+";
	         }
	      } else if(point >= 70) {
	         
	         grade = "C";
	         
	         if(point >= 75) {
	            grade += "+";
	         }
	      } else if(point >= 60) {
	         
	         grade = "D";
	         
	         if(point >= 65) {
	            grade += "+";
	         }
	      } else {
	         
	         System.out.println("F");
	      }
	      
	      System.out.println(name + " 학생의 점수는 " + point + "이고, 등급은 " + grade + "입니다.");
	      System.out.println("프로그램을 종료합니다.");
	      sc.close();
		
		
		
	
}

}
]학생의 이름을 입력하세요 :
ㅇㄹㅇ
학생의 점수를 입력하세요 :
95
ㅇㄹㅇ 학생의 점수는 95이고, 등급은 A+입니다.
프로그램을 종료합니다.

class D_switch

swtich 구문에서 break가 없으면 정해져있는 값으로 다이렉트로 찾아간뒤 그뒤까지 모두 출력됨

package com.greedy.section01.conditional_statement;

import java.util.Scanner;

public class D_switch {

public void testSimpleSwitchStatement() {
	
	/*[switch문 표현식]
	 * switch(비교할변수){
	 *     case 비교값1 : 비교값1과 일치하는 경우 실행할 구문; break;
	 *     case 비교값2 : 비교값2과 일치하는 경우 실행할 구문; break;
	 *     default : case에 모두 해당하지 않는 경우 실행할 구문; break;
	 * } 
	 * 
	 * 여러 개의 비교값 중 일치하는 조건에 해당하는 로직을 실행하는 것은 if-else-if와 유사하다.
	 * 따라서 일부 호환이 가능하다.
	 * 하지만, switch문으로 비교 가능한 값은 정수, 문자, 문자열 형태의 값이다.
	 * 실수와 논리는 비교할 수 없다.
	 * 
	 * 또한 정확하게 일치하는 경우만 비교할 수 있으며 대소비교를 할 수 없다는게 차이점이다.
	 * case절에는 변수를 사용하지 못한다. ( 값만 비교가능)
	 * 또한 문자열 비교는 jdk 1.7이상부터 가능하다.
	 * */
	
	
	/*정수 두개와 연산 기호문자를 입력 받아서 두 숫자의 연산결과를 출력해보는 간단한 계산기를 만들기*/
	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); // '+'
	//String op = sc.nextLine(); //"+"
	/*연산의 결과를 저장할 변수*/
	int result = 0;
	
	switch(op) {
	    case'+':
	    	result = first + second;

// System.out.println(first + " " + op + " " + second + " = " + (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(first + " " + op + " " + second + " = " + result);
	
	sc.close();
}

/**
 * <pre>
 *      switch문으로 문자열 값 비교 테스트 및 break 테스트
 * </pre>
 */
public void testSwitchVendingMachine() {
	
	System.out.println("======== greedy vending machine =========");
	System.out.println(" 사이다 콜라 환타 바카스 핫식스");
	System.out.println("=======================");
	System.out.print("음료를 선택해주세요 : ");
	
	Scanner sc = new Scanner(System.in);
	String selectedDrink = sc.nextLine();
	
	/*원하는 음료에 맞는 가격을 저장할 변수*/
	int price = 0;
	
	switch(selectedDrink) {
	
	case "사이다":
		System.out.println("사이다를 선택하셨습니다.");
		price = 500;
		break;
	case "콜라":
		System.out.println("콜라를 선택하셨습니다.");
		price = 600;
		break;
	case "환타":
		System.out.println("환타를 선택하셨습니다.");
		price = 700;
		break;
	case "바카스":
		System.out.println("바카스를 선택하셨습니다.");
		price = 2000;
		break;
	case "핫식스":
		System.out.println("핫식스를 선택하셨습니다.");
		price = 10000;
		break;
 }
	
 System.out.println(price + "원을 투입해주세요!");
	
	
	
	
}

}
->======== greedy vending machine =========

사이다 콜라 환타 바카스 핫식스

음료를 선택해주세요 : 환타
환타를 선택하셨습니다.
700원을 투입해주세요!

테스트

profile
FE Developer 🐥

0개의 댓글