티스토리 뷰
소스코드
package Day12;
import java.util.Scanner;
public class Q1_1 {
	static int add(int a, int b) {
		return a + b;
	}
	
	static void minus(int a, int b) {
		System.out.println("결과값 : "+(a-b)+" 입니다.");
	}
	
	static int mul() {
		Scanner sc = new Scanner(System.in);
		int[] array =input(sc);
		return array[0] * array[1];
	}
	static void div() {
		Scanner sc = new Scanner(System.in);
		int[] array =input(sc);
		System.out.printf("결과값 : %.1f 입니다.", (double)array[0]/(double)array[1]);
	}
	
	static int[] input(Scanner sc) {
		int[] a = new int[2];
		System.out.print("숫자1 입력 : ");
		a[0] = sc.nextInt();
		System.out.print("숫자2 입력 : ");
		a[1] = sc.nextInt();
		return a;
	}
	
	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(); //위로 뺀다
		
		if(op.equals("+")) {
			int[] array=input(sc);
			System.out.println("결과값 : "+(array[0]+array[1])+" 입니다.");
		}
		else if(op.equals("-")) {
			int[] array=input(sc);
			System.out.println("결과값 : "+(array[0]-array[1])+" 입니다.");
		}
		else if(op.equals("*")) {
			System.out.println("결과값 : "+mul()+" 입니다.");
		}
		else if(op.equals("/")) {
			div();
		}
		else {
			System.out.println("잘못된 연산자 입니다.");
		}
	}
}
나름대로의 해석
(1) 연산자 입력
공통 부분이므로, 그냥 main 메소드에 둔다.
(2)
숫자 입력 메서드는 따로 뺌.
숫자 2개를 입력받을 것이므로, 배열로 받음.
그리고 매개변수o, 리턴값o 인 메소드로 구현을 해야하므로
스캐너 자체를 매개변수로 받고, a(배열)을 리턴값으로 반환한다.
나머지 원리는 앞선 소스코드 1과 비슷함
여기서 질문
(Scanner sc)는 클래스 그 자체를 매개변수로 받아온 건가요? 매개변수의 타입은 뭐라고 봐야하는 건가요?
return a는 지금 배열을 반환하는 건가요, 아니면 int 값을 반환하는 걸로 해석해야 하나요?
int[] array=input(sc); 이건 왜 이런 형태로 쓰는지 모르겠어요.
지금 더하기 빼기 연산은 input을 main에 두고,
곱하기, 나누기 연산은 input을 각각의 메서드에 두는 식으로 코드를 강사님이 구현했는데,
왜 그런 차이가 있는 걸까요?
제 추론은 파라미터 값의 유무일 것 같긴 한데, 제대로 된 이유가 궁금하네요.
728x90
    
    
  반응형
    
    
    
  '[개발] - Java > Mega-Method' 카테고리의 다른 글
| Day12 Quiz03 랜덤수 채우기 퀴즈 (0) | 2023.03.31 | 
|---|---|
| Day12 Quiz02 도형의 넓이 구하기 (0) | 2023.03.31 | 
| Day12 Quiz01. 계산기 만들기(1) 나름대로의 해석 (0) | 2023.03.30 | 
| Day11 메소드 예제(3) 나름대로 해석 (0) | 2023.03.30 | 
| Day11 메소드 예제(2) 나름대로 해석 (0) | 2023.03.30 | 
 
                            Comments
                            
                        
                        
                        
                    
                    
                    
                        
                    
                 
                                                    