● 메소드의 목적
1. 재사용(특정성을 부여해서는 안된다.)
2. 소스코드 간결화
● 리턴해야 할 때
- 사용한 쪽에 로직의 결과를 전달해야 할 때
- 메소드 내에서 모든 작업이 끝날 수 없을 때
● 리턴하면 안될 때
- 사용한 쪽에 로직의 결과를 전달할 필요가 없을 때
- 메소드 내에서 모든 작업이 완료될 때
실습(메소드)
1. 두 정수의 나눗셈을 해주는 메소드(몫과 나머지)
import java.util.Scanner;
public class MethodTask {
int[] div(int num1, int num2) {
int[] result = new int[2];
result[0] = num1 / num2; // 몫
result[1] = num1 % num2; // 나머지
return result;
}
}
2. 1~n까지의 합을 구해주는 메소드
import java.util.Scanner;
public class MethodTask {
int sumFrom1(int end) {
int total = 0;
for (int i = 0; i < end; i++) { // 입력받은 수만큼 반복
total += i + 1;
}
return total;
}
}
3. 홀수를 짝수로, 짝수를 홀수로 바꿔주는 메소드
import java.util.Scanner;
public class MethodTask {
int change(int num) {
return ++num; // 증가값이 바로 변영되어야 하므로 전위형으로 작성한다.
}
public static void main(String[] args) {
MethodTask mt = new MethodTask();
int result = mt.change(30);
if(result % 2 == 0) {
System.out.println("짝수로 변경되었습니다.");
} else {
System.out.println("홀수로 변경되었습니다.");
}
}
}
4. 문자열을 입력받고 소문자는 대문자로, 대문자는 소문자로 바꿔주는 메소드
import java.util.Scanner;
public class MethodTask {
String changeString(String str) {
char c = ' ';
String result = "";
for (int i = 0; i < str.length(); i++) {
c = str.charAt(i); // 코드가 길어지므로 char형 변수에 담아준다.
if(c >= 65 && c <= 90) { // 대문자일 때
result += (char)(c + 32);
} else if(c >= 97 && c <= 122) { // 소문자일 때
result += (char)(c - 32);
} else { // 그 외 나머지
result += c;
}
}
return result;
}
}
5. 문자열을 입력받고 원하는 문자의 개수를 구해주는 메소드
import java.util.Scanner;
public class MethodTask {
int getCount(String str, char c) {
int count = 0;
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i) == c) { // charAt()을 사용하여 문자열 중 한 문자를 뽑아준다.
count++;
}
}
return count;
}
}
6. 5개의 정수를 입력받은 후 원하는 번째 값을 구해주는 메소드
import java.util.Scanner;
public class MethodTask {
int getValue(int[] arNum, int index) {
return arNum[index - 1]; // 4번째 값은 arNum[3]에 들어있으므로 index - 1
}
public static void main(String[] args) {
MethodTask mt = new MethodTask();
int[] arNum = {3, 5, 1, 2, 6};
System.out.println(mt.getValue(arNum, 4));
}
}
7. 한글을 정수로 바꿔주는 메소드(String 클래스의 IndexOf() 메소드를 사용한다.)
※ 참고
입력 예) 일공이사
출력 예) 1024
- 코드
import java.util.Scanner;
public class MethodTask {
int changeToInteger(String hangle) {
int[] num = new int[10];
String hangleOriginal = "공일이삼사오육칠팔구";
String result = "";
for (int i = 0; i < hangle.length(); i++) {
// hangle 문자열에서 charAt()을 이용하여 뽑은 문자를
// indexOf()를 이용하여 hangleOriginal에서 찾는다.
result += hangleOriginal.indexOf(hangle.charAt(i));
}
return Integer.parseInt(result);
}
public static void main(String[] args) {
MethodTask mt = new MethodTask();
Scanner sc = new Scanner(System.in);
System.out.print("한글(정수형식) : ");
System.out.println(mt.changeToInteger(sc.next())); // 입력한 문자를 찾는다.
}
}
8. 5개의 정수를 입력받고 최대값과 최소값을 구해주는 메소드(리턴 타입은 void이며, 메소드 안에서 출력하지 않는다.)
import java.util.Scanner;
public class MethodTask {
void getMaxAndMin(int[] arNum, int[] result) {
result[0] = arNum[0];
result[1] = arNum[1];
int max = arNum[0];
int min = arNum[0];
for (int i = 0; i < arNum.length; i++) {
if(result[0] < arNum[i]) {
result[0] = arNum[i];
}
if(result[1] > arNum[i]) {
result[1] = arNum[i];
}
}
}
public static void main(String[] args) {
MethodTask mt = new MethodTask();
int[] result = new int[2];
int[] arNum = {3, 5, 1, 2, 6};
mt.getMaxAndMin(arNum, result);
System.out.println("최대값 : " + result[0]);
System.out.println("최소값 : " + result[1]);
}
}
'웹 개발 > Java' 카테고리의 다른 글
[Web_JAVA] 14 (0) | 2022.02.28 |
---|---|
[Web_JAVA] 13 (0) | 2022.02.27 |
[Web_JAVA] 11 (0) | 2022.02.25 |
[Web_JAVA] 10 (0) | 2022.02.24 |
[Web_JAVA] 09 (0) | 2022.02.23 |