코드 그라데이션

Day12 Quiz01. 계산기 만들기(1) 나름대로의 해석 본문

Java/Mega-Method

Day12 Quiz01. 계산기 만들기(1) 나름대로의 해석

완벽한 장면 2023. 3. 30. 23:43
package Day12;

import java.util.Scanner;

public class Q1 {

	// 지금 받는 값이 없으니까, 
	static int temp1; 
	static int temp2;
	// 곱하기에서 값을 받을 수가 없으니 활용할 수 있는 방법은 두 가지
	// 스태틱을 만들어서 쓰거나 아예 입력을 위로 빼거나 / 여기선 1번 방법을 사용함.
	

	// 더하기연산  1. 주고받고 (리턴값O, 매개변수O)
	static int add(int a, int b) {
		return a + b;
	}
	
	// 빼기 연산    3. 안주고 받고 (리턴값x, 매개변수O)
	static void minus(int a, int b) {
		System.out.println("결과값 : "+(a-b)+" 입니다.");
	//num1과 num2의 값이 a와 b로 값만 넘어왔다.
	}
	
	// 곱하기 연산 2. 주고안받고 (리턴값o, 매개변수x)
	static int mul() {
		return temp1 * temp2;
	}
	
	// 나누기연산  4.안주고 안받고 (리턴값x, 매개변수x)
	static void div() {
		System.out.printf("결과값 : %.1f 입니다.", (double)temp1/(double)temp2);
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

				Scanner sc = new Scanner(System.in);
				//1. 입력
				System.out.print("연산자 입력 : ");
				String op = sc.next();
				System.out.print("숫자1 입력 : ");
				int num1 = sc.nextInt();
				System.out.print("숫자2 입력 : ");
				int num2 = sc.nextInt();


				if(op.equals("+")) {
					System.out.println("결과값 : "+add(num1,num2)+" 입니다.");
				}
				else if(op.equals("-")) {
					minus(num1, num2);
				}
				else if(op.equals("*")) {
					temp1 = num1;
					temp2 = num2;
					System.out.println("결과값 : "+mul()+" 입니다.");
				}
				else if(op.equals("/")) {
					temp1 = num1;
					temp2 = num2;
					div();
				}
				else {
					System.out.println("잘못된 연산자 입니다.");
				}

	}

}

 

실행 결과

 

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

(1)

입력은 main 메서드에서 일괄적으로 받는다.

 

(2)

더하기 메서드는 리턴값o, 파라미터o 인 메서드이다.

따라서 num1과 num2가 int a과 int b 이다.

(리턴값을 바로 메서드에서 출력하는 경우 변수에 굳이 저장하지 않아도 된다. 다른 곳에서 쓰려면 변수에 저장해야하지만)

if(op.equals("+")) {

System.out.println("결과값 : "+add(num1,num2)+" 입니다.");

이렇게 단순하게 쓰면 된다.

 

(3)

빼기 연산

매개변수는 있지만, void 메서드이므로 리턴값이 없다. 리턴값이 없는 경우, 메서드에 있는 내용이 그대로 main 메서드에서 실행된다. 

 

그래서 main에서는 minus()메서드만 부르고, 파라미터가 있었으므로,

minus(num1, num2); 라고만 적어주면, 메서드 내부의

System.out.println("결과값 : "+(a-b)+" 입니다.");

이 문장이 그대로 실행되어 출력된다. 

그리고 a와 b로 num1과 num2의 값이 (값만) 넘어온 것이다.

 

(3) 

곱하기 연산

리턴값 o, 매개변수 x 메서드이다.

매개변수로 받아오는게 없는데, 계산은 시켜야 하므로,  static 변수로 숫자 두 개를 선언해서 받아온다.

이 static 변수에 num1과 num 2를 각각 저장하고, 

리턴값인 temp1*temp2 를 main메서드에서 계산 시키기 위해 

temp1 = num1;

temp2 = num2; 을 적어준다.

그리고 출력문 안에 mul()을 그대로 써서 출력해주면 결과가 나온다.

 

(4)

나누기 연산

역시 우선적으로 매개변수가 없으므로, 값을 계산하기 위해 temp1과 temp2를 main에서 nu

m1과 num2로 받아다가 쓸 수 있도록

temp1 = num1;

temp2 = num2; 를 써준다.

 

그리고 리턴값도 없으므로, 메소드 내의 실행문이 그대로 출력되게 되므로,

main 메소드에서 div() 만 불러주면 나누기 값이 출력된다.

 

 

 

728x90
Comments