Categories: 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

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

4개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

5개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

5개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

6개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

6개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

6개월 ago

This website uses cookies.