메소드에 익숙해지기 위해서 또 메소드 실습 문제를 풀어나가 보겠습니다.
지난 포스트
실습 문제
정수형 변수 num1과 num2를 각각 초기화하고 문자형 변수 op를 선언해 원하는 연산자로 초기화하세요.
num1, num2, op를 받아 num1과 num2를 op에 맞게 연산한 최종 값을 반환해주는 cal 메소드를 작성하세요.
(단, 빼기를 수행할 때는 더 큰 수에서 작은 수를 빼주세요.)
문제 안에서 오랜만에 보는 데이터 타입인 캐릭터char가 나왔습니다.
이번 문제를 풀 때는 조건문으로 자주 사용되는 다중 if-else문으로도 풀 수 있지만,
이번에는 switch문을 쓰는 게 코드가 더 깔끔하고 예뻐 보입니다.
switch문이 가물가물하신 분들은 위의 포스트를 참고해서 switch문으로 문제를 풀어봅시다.
정답
package 메소드실습;
public class Ex01_계산기 {
public static void main(String[] args) {
int num1 = 60; // 숫자1
int num2 = 15; // 숫자2
char op = '-'; // 어떤 연산을 수행할 건지 연산자
System.out.println(cal(num1, num2, op));
}
private static int cal(int num1, int num2, char op) {
// 1. 매개변수로 받아온 op가 +라면
// 2. num1과 num2를 더한 값을 result에 담아주기
// 3. op가 -라면
// 4. num1과 num2를 뺀 값을 result에 담아주기
// 5. op가 *라면
// 6. num1과 num2를 곱한 값을 result에 담아주기
// 7. op가 /라면
// 8. num1과 num2를 나눈 몫을 result에 담아주기
int result = 0;
switch(op) {
case '+':
result = num1+num2;
break;
case '-':
result = num1>num2 ? num1-num2 : num2-num1;
break;
case '*':
result = num1*num2;
break;
case '/':
result = num1/num2;
break;
default:
}
return result;
}
}
switch문, 오랜만에 보니 예쁘긴 합니다.
여기서 주목할 부분은, 연산자가 마이너스일 경우에는 더 큰 수에서 작은 수를 빼주라는 조건이 붙어있었습니다.
그래서 또 오랜만에 등장하는 것이 삼항연산자입니다.
char 타입의 변수 op가 '-'일 경우에는 삼항연산자를 이용해서 더 큰 수에서 작은 수를 빼라고 코드를 짜주었습니다.
삼항연산자에 대해 다시 짚고 넘어가실 분들은 위의 글을 봐주세요.
package 메소드실습;
public class Ex01_계산기 {
public static void main(String[] args) {
int num1 = 60; // 숫자1
int num2 = 15; // 숫자2
char op = '-'; // 어떤 연산을 수행할 건지 연산자
System.out.println(cal(num1, num2, op));
}
private static int cal(int num1, int num2, char op) {
// 1. 매개변수로 받아온 op가 +라면
// 2. num1과 num2를 더한 값을 result에 담아주기
// 3. op가 -라면
// 4. num1과 num2를 뺀 값을 result에 담아주기
// 5. op가 *라면
// 6. num1과 num2를 곱한 값을 result에 담아주기
// 7. op가 /라면
// 8. num1과 num2를 나눈 몫을 result에 담아주기
int result = 0;
if(op=='+') {
result = num1+num2;
} else if(op=='-') {
result = num1>num2 ? num1-num2 : num2-num1;
} else if(op=='*') {
result = num1*num2;
} else if(op=='/') {
result = num1/num2;
} else {
}
return result;
}
}
다중 if-else문으로 해결할 경우에는 이렇게 할 수 있습니다.
혹시 코드를 복사해가고 싶으신 분들을 위해 아래에 코드를 올려두겠습니다.
위의 소스 코드는 PC에서 드래그 후,
ctrl+x로 잘라내서 다른 곳으로 붙여넣기가 가능합니다.
ctrl+c(복사)는 불가능합니다.
다음 포스트
이 글이 도움이 됐다면 하단의 ♡ 공감 버튼을 꾹 눌러서
빨간 하트♥로 만들어주세요.
지인에게 보여주고 싶은 글이었다면
공감 버튼 옆을 클릭해서 SNS에 공유해주세요.
댓글은 블로그 운영에 큰 힘이 됩니다.
'그 외 프로그래밍 언어 > Java' 카테고리의 다른 글
자바, 제곱 값 구하는 메소드 만들기 (0) | 2021.12.11 |
---|---|
자바, 메소드(method)의 기본 구조 빠르게 만드는 법 (0) | 2021.12.11 |
자바, 메소드(method) 실습 (0) | 2021.12.11 |
자바, 리턴 타입이 없는 메소드 (feat. void) (0) | 2021.12.11 |
자바, 간단한 메소드를 만들어 봅시다. (0) | 2021.12.05 |
댓글