본문 바로가기
프로그래밍/JAVA

16 메소드를 이용한 문제 풀이

by 윤지(●'◡'●) 2021. 4. 6.
반응형

 


학원 단과 수업에서 풀어본 문제들 (ノ◕ヮ◕)ノ*:・゚✧

편의상 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
일공이사
반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

18 생성자  (0) 2021.04.07
17 클래스(Class)와 객체(instance)  (0) 2021.04.07
15 메소드(method)  (0) 2021.04.06
14 중첩 for문(이중 for문)  (0) 2021.04.02

댓글