오버로딩

Mia Lee·2021년 12월 2일
0

JAVA

목록 보기
58/98
package ex_overloading;

public class Test1 {

	public static void main(String[] args) {
		
		Calculator c = new Calculator();
		
		c.calc('+', 10, 20); // 10 + 20 = 30 출력
		c.calc('-', 100, 10); // 100 - 10 = 90 출력
		c.calc('*', 10, 20); // 10 * 20 = 200 출력
		c.calc('/', 100, 2); // 100 / 2 = 50 출력
		
		c.calc('+', 10, 20, 30); // 10 + 20 + 30 = 60 출력
		c.calc('-', 100, 10, 20); // 100 - 10 - 20 = 70 출력
		c.calc('*', 10, 20, 30); // 10 * 20 * 30 = 6000 출력
		c.calc('/', 100, 2, 5); // 100 / 2 / 5 = 10 출력
		
		c.calc('+', 10, 20, 30, 40); // 10 + 20 + 30 + 40 = 100 출력
		c.calc('-', 100, 10, 20, 30); // 100 - 10 - 20 - 30 = 40 출력
		c.calc('*', 10, 20, 30, 40); // 10 * 20 * 30 * 40 = 240000 출력
		c.calc('/', 100, 2, 5, 2); // 100 / 2 / 5 / 2 = 5 출력
		
		System.out.println("=====================================");
		
		c.calc('+', 1, 2, 3, 4, 5, 6, 7, 8, 9);
		
	}

}

/*
 *   간단한 계산기(Calculator 클래스)
 *   - calc() 메서드
 *   => 연산자 1개와 정수형 가변인자를 활용하여 메서드 작성
 *   
 */
class Calculator {
	
	public void calc(char opr, int...nums) {
		
		int total = nums[0]; // 연산을 누적할 변수(첫번째 숫자를 미리 저장)
		
		System.out.print(nums[0]);
		
		// 이미 0번 인덱스 데이터는 total 변수에 전달했으므로
		// if문으로 연산자 판별 후 1번 인덱스부터 마지막까지 반복해서 연산 수행
		if (opr == '+') {
			for (int i = 1; i < nums.length; i++) {
				total += nums[i];
				System.out.print(" + " + nums[i]);
				
			}
			
		} else if (opr == '-') {
			for (int i = 1; i < nums.length; i++) {
				total -= nums[i];
				System.out.print(" - " + nums[i]);
				
			}
			
		} else if (opr == '*') {
			for (int i = 1; i < nums.length; i++) {
				total *= nums[i];
				System.out.print(" * " + nums[i]);
				
			}
		} else if (opr == '/') {
			for (int i = 1; i < nums.length; i++) {
				total *= nums[i];
				System.out.print(" / " + nums[i]);
				
			}
		}
		
		System.out.println(" = " + total);
		
	}
	
}

















0개의 댓글