foxpacking

Programming Lessons

Java 언어 Korean

Java 총 정리[35. 메소드 문제]

메소드 문제

메소드에 이해를 돕기 위한 4가지 형식과 부수적으로 필요한 내용들을 이전 걸음에서 배워 봤습니다. 이제 메소드의 문제를 풀어 봄으로써 활용을 잘 할 수 있도록 해야 합니다. 우선 기본적인 메소드 문제를 풀면서 실력이 향상이 되도록 할 수 있습니다. 

메소드 관련 문제를 풀려고 할 때 문제를 보고 결과만 나온다는 생각을 버리셔야 합니다. 메소드를 배운다는 것은 구조적으로 프로그래밍을 하고 여러 상황에서 알맞게 메소드를 쓸 수 있게 연습이 되어야 합니다. 그래서 제가 나는 문제들을 풀어보신다면 분명히 메소드의 실력 향상이 되실 수 있습니다.

사칙 연산 메소드 문제를 같이 해보겠습니다. 이전에 main메소드에서 만들어서 간단한 사칙 연산을 하는 푸는 문제를 했지만 이번에는 메소드로 만들면 됩니다. 하지만 그냥 원하는 메소드를 사용을 하는 것이 아니라 지정한 메소드로 만들어서 프로그램을 완성을 하면 됩니다.

메소드 사칙 연산 문제

메소드문제사진

연산자를 입력을 받고 그 이후에 정수 2개를 입력 받아서 연산자를 이용한 연산을 한 결과를 출력을 해주는 프로그램을 만들면 됩니다. 이때 올바르지 않는 연산자를 입력하면 (+ – * / 이외 연산자) 잘못된 입력이라고 출력을 해주면 됩니다. 

※ 아래 연산을 하는 메소드를 4개 만들어야 합니다. 하지만 4가지 형태를 모두 사용을 해서 프로그램을 만들어야 합니다.

※ 메소드 연습을 위해서 static이라는 명령어를 사용하여 메소드를 바로 메모리에 올려 사용을 할 수 있게 문제를 풀어줍니다.

※ 메소드를 4가지 형태를 모두 사용을 하기 때문에 제약 사항이 생기면 필요에 따라서 static 변수를 사용을 합니다.

위 문제를 Class를 생성하고 Main문에 소스를 구현해 주세요.

실행 관련 걸음 : 다섯 걸음, 여섯걸음

참고해주세요.

또한 문제에서 나오는 메소드 4개도 main메소드 위에 만들어야 합니다.


import java.util.Scanner;

public class Q1 {

	static int A = 0;
	static int B = 0;
	
	//더하기 연산 1. 주고 받고
	static int add(int a, int b) {
		return a + b;
	}
	
	//곱하기 연산 2.주고 안받고
	static int mul() {
		return A * B;
	}
	//빼기 연산 3. 안주고 받고
	static void minus(int a, int b) {
		System.out.println("결과값 : "+(a-b)+"입니다.");
	}
	
	//나누기 연산 4. 안주고 안받고
	static void div() {
		System.out.printf("결과값 : %.1f 입니다.", (double)A/B);
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		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("+")) {
			int result = add(num1,num2);
			System.out.println("결과값 : "+result+"입니다.");
		}
		else if(op.equals("-")) {
			minus(num1, num2);
		}
		else if(op.equals("*")) {
			A = num1;
			B = num2;
			int result = mul();
			System.out.println("결과값 : "+result+"입니다.");
		}
		else if(op.equals("/")) {
			A = num1;
			B = num2;
			div();
		}
		else {
			System.out.println("잘못된 연산자 입니다.");
		}
	}

}

        

생각을 해보기

메소드 문제를 처음 풀었지만 구조화가 필요한 문제 입니다. 그래서 여러 메소드를 상황이 맞지 않더라도 사용을 해보고 적용을 한다면 메소드에 대한 실력이 향상이 되실 수 있습니다.

※ 다른 방법이 없는지 생각을 해보면 실력 향상에 도움이 될 수 있습니다.

Dolphin

About Author

Leave a comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You may also like

Korean Programming 기초

IT 개발자 VS 프로축구선수 비교?

IT 개발자와 프로축구선수의 같은 점과 다른 점? 프로그래밍 공부를 하시면서 개발자로 취업을 하려고 하는데 과연 취업을 할 수 있을까? IT
Korean 클라우드

AWS 로그인 불가능, AWS고객 센터 이메일 문의 결과는?

AWS 고객센터 이메일 문의 솔직후기 AWS를 사용하기 위해 로그인을 하는 경우 이메일로 코드 번호를 보내지만 이메일로 받을 수 없는 상황이거나