프로그래밍/JAVA
16 메소드를 이용한 문제 풀이
윤지(●'◡'●)
2021. 4. 6. 10:50
반응형
학원 단과 수업에서 풀어본 문제들 (ノ◕ヮ◕)ノ*:・゚✧
편의상 main 부분의 메소드를 호출하는 코드는 맨 마지막에 한번에 첨부하겠습니다.
1. 1 ~ 10까지 출력하는 메소드
void print1To10() {
for (int i = 1; i <=10; i++) {// 1부터 10까지 반복
System.out.println(i); // 출력
}
}
2. 1 ~ 10까지 합 구해주는 메소드
int sum1To10() {
int sum=0; // 합을 담을 공간
for (int i = 1; i <= 10; i++) { // 1 ~ 10 까지 반복
sum+=i; // 반복문이 도는동안 sum에 저장
}
return sum; // sum 리턴
}
3. 1 ~ n까지 합 구해주는 메소드
입력은 메인에서, 출력 혹은 연산은 메소드에서 진행한다
int sum1To10() {
int sum=0; // 합을 담을 공간
for (int i = 1; i <= 10; i++) { // 1 ~ 10 까지 반복
sum+=i; // 반복문이 도는동안 sum에 저장
}
return sum; // sum 리턴
}
4. 두 정수의 나눗셈 결과 구해주는 메소드
double numdiv(int num1, int num2){
return (double)num1 / num2;
}
5. 문자열의 소문자를 대문자로 바꿔주는 메소드
String changeToUpperCase(String msg){
String result = ""; // 결과값을 담을 변수 생성
for (int i = 0; i < msg.length(); i++) { // msg의 길이만큼 반복
char ch = msg.charAt(i); // 변수 ch에 msg를 charAt으로 한글자씩 담기
// ex)Hello -> 'H' , 'e', 'l', 'l', 'o'
if('a'<=ch && ch <= 'z') { // 아스키코드를 이용하여 소문자 인지 체크
result += (char)(ch-32); // 소문자라면 32를 빼서 대문자로 변경
}else { // 대문자라면?
result += ch; // 변경 없이 그대로 값을 담는다
}
}
return result; 리턴값 : result
}
※ 소문자값에서 32를 빼는 이유?
아스키코드로 보았을 때 대문자와 소문자의 차이는 32이다. 그렇기 때문에 32만큼을 빼면 대문자로 변경 가능하다.
'a' = 97 'A' = 65 -------------------------->97 - 65 = 32
'b = 98 'B' = 66 -------------------------->98 - 66 = 32
'c' = 99 'C' = 67 -------------------------->99 - 67 = 32
.
.
.
6. 문자열 거꾸로 출력해주는 메소드
void reverse(String msg){
String result = ""; // 결과 값을 담을 변수
for (int i = msg.length()-1; i >= 0; i--) { // msg의 길이-1 ~ 0 까지 반복
// ex) Hello -> 4,3,2,1,0
char ch = msg.charAt(i); // 변수 ch에 msg를 charAt으로 추출해 저장
result += ch; // ex) o - ol - oll - olle - olleH
}
System.out.println(result);
}
7. 정수를 한글로 바꿔주는 메소드 (1024 -> "일공이사")
String changeToHangle(String num){
String hangle = "공일이삼사오육칠팔구";
String data = num + ""; // 정수->문자열로 변경
String result = ""; // 결과 값을 담을 변수 생성
for (int i = 0; i < data.length(); i++) { // 0부터 data의 길이만큼 반복
char ch = data.charAt(i);// 문자열 -> 문자 '1' , '0', '2', '4'
// 문자 -> 정수
result += hangle.charAt(ch-48); // 문자 -> 정수
}
return result;
}
// '1' -> -48 -> 1
// 49 -> - 48 -> 1
※ 문자에서 정수로 변경 시, 48을 빼는 이유?
이것또한 아스키코드를 이용한 방법이다.
'1' = 49 --------------------------> 49 - 48 = 1
'2' = 50 --------------------------> 50 - 48 = 2
'3' = 51 --------------------------> 51 - 48 = 3
.
.
main에서 메소드를 호출해보자( •̀ ω •́ )✧
import java.util.Scanner;
public class MethodTask {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
MethodTask m = new MethodTask();
// 1 ~ 10까지 출력하는 메소드
System.out.println("1 ~ 10까지 출력하는 메소드");
m.print1To10();
// 1 ~ 10까지 합 구해주는 메소드
System.out.println("1 ~ 10까지 합 구해주는 메소드");
System.out.println(m.sum1To10());
// 1 ~ n까지 합 구해주는 메소드
System.out.println("1 ~ N까지 합 구해주는 메소드");
System.out.print("N : ");
int n = sc.nextInt();
System.out.println(m.sum1ToN(n));
// 두 정수의 나눗셈 결과 구해주는 메소드
System.out.println("두 정수의 나눗셈 결과 구해주는 메소드");
System.out.print("Num1 : ");
int num1 = sc.nextInt();
System.out.print("Num2 : ");
int num2 = sc.nextInt();
System.out.println(m.numdiv(num1,num2));
// 문자열의 소문자를 대문자로 바꿔주는 메소드
System.out.println("문자열의 소문자를 대문자로 바꿔주는 메소드");
System.out.print("문자열 입력 : ");
String str1 = sc.next();
System.out.println(m.changeToUpperCase(str1));
// 문자열 거꾸로 출력해주는 메소드
System.out.println("문자열 거꾸로 출력해주는 메소드");
System.out.print("문자열 입력 : ");
String str2 = sc.next();
m.reverse(str2);
// 정수를 한글로 바꿔주는 메소드
System.out.println("정수를 한글로 바꿔주는 메소드");
System.out.print("정수 입력 : ");
String num = sc.next();
System.out.println(m.changeToHangle(num));
}
결과
1 ~ 10까지 출력하는 메소드
1
2
3
4
5
6
7
8
9
10
1 ~ 10까지 합 구해주는 메소드
55
1 ~ N까지 합 구해주는 메소드
N : 10
55
두 정수의 나눗셈 결과 구해주는 메소드
Num1 : 10
Num2 : 2
5.0
문자열의 소문자를 대문자로 바꿔주는 메소드
문자열 입력 : Hello
HELLO
문자열 거꾸로 출력해주는 메소드
문자열 입력 : Hello
olleH
정수를 한글로 바꿔주는 메소드
정수 입력 : 1024
일공이사
반응형