메소드 문제
메소드에 이해를 돕기 위한 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("잘못된 연산자 입니다.");
}
}
}
생각을 해보기
메소드 문제를 처음 풀었지만 구조화가 필요한 문제 입니다. 그래서 여러 메소드를 상황이 맞지 않더라도 사용을 해보고 적용을 한다면 메소드에 대한 실력이 향상이 되실 수 있습니다.
※ 다른 방법이 없는지 생각을 해보면 실력 향상에 도움이 될 수 있습니다.
함께 보면 좋은 글
§ Java 첫 걸음 변수와 자료형§ Java 두 걸음 연산자
§ Java 세 걸음 형 변환
§ Java 네 걸음 Eclipse 설치
§ Java 다섯 걸음 Eclipse 개발 준비
§ Java 여섯 걸음 출력
§ Java 일곱 걸음 출력
§ Java 여덟 걸음 문제 풀기 1
§ Java 아홉 걸음 한글 깨짐
§ Java 열 걸음 제어문
§ Java 열 한걸음 if문
§ Java 열 두걸음 switch문
§ Java 열 세걸음 while문
§ Java 열 네걸음 for문
§ Java 열 다섯걸음 중첩 및 주의 사항
§ Java 열 여섯걸음 문제 1
§ Java 열 일곱걸음 문제 2
§ Java 열 여덟걸음 break continue
§ Java 열 아홉걸음 random
§ Java 스물 걸음 별 찍기 1
§ Java 스물 한걸음 별 찍기 2
§ Java 스물 두걸음 가위 바위 보 게임
§ Java 스물 세걸음 배열
§ Java 스물 네걸음 배열 활용
§ Java 스물 다섯걸음 Rando 활용 문제
§ Java 스물 여섯걸음 숫자 야구 게임
§ Java 스물 일곱 걸음 배열 숫자 야구 게임
§ Java 스물 여덟 걸음 다차원 배열
§ Java 스물 아홉 걸음 다차원 배열 심화
§ Java 서른 걸음 다차원 배열 문제
§ Java 서른 한 걸음 가변 배열
§ Java 서른 두 걸음 메소드(함수)
§ Java 서른 세 걸음 메소드형태
§ Java 서른 네 걸음 메소드 기초활용