메서드 예제 1,2,3,4

김지원·2022년 5월 28일
0

Java

목록 보기
19/38

메서드 예제를 통해 익숙해져보자!

1) 홀수를 짝수로 짝수는 홀수로 바꿔주는 메서드

public class MethodTask {
	int num(int nums) {
		return nums+1;
	}
	public static void main(String[] args) {
		MethodTask m = new MethodTask();
		System.out.println(m.num(3));	
	}
}

2) 1부터 내가 입력한 정수까지의 누적합 구해주는 메서드

3) 두 정수의 나눗셈 메서드

4) 정수를 한글로 바꿔주는 메서드

4번 => 입력 예)1024 -> 출력 예) 일공이사

3문제를 같이 작성하였다.(메서드를 3번 사용해보기 위해서)

public class MethodTask_04 {
	void getSumFrom1(int end) {
		int result = 0;

		if (end > 1) {
			for (int i = 1; i < end + 1; i++) {
				result += i;
			}
			System.out.println(result);
		} else {
			System.out.println("1이상의 값을 입력해주세요");
		}
	}
		void div(int num1, int num2) {
			double result = 0.0;
			if (num2 != 0) {
				result = Double.parseDouble(String.format("%.3f", (double) num1 / num2));
				System.out.println(result);
			} else {
				System.out.println("0으로 나눌 수 없습니다.");
			}
		}

3번! 너무 어려웠다..정말 졍먈...

	void chanegeToHangle(String data) { 
		String hangle ="공일이삼사오육칠팔구"; 
		String result = "";
		int num =  Integer.parseInt(data); 
		
		for(int i =0; i<data.length(); i++) {
			result += hangle.charAt(num % 10);
			num /= 10;
		}
		for(int i = data.length()-1; i>-1; i--) {
			System.out.print(result.charAt(i));
		}
	}

public static void main(String[] args) {
		MethodTask_04 m = new MethodTask_04();
		//한번에 출력!
		m.getSumFrom1(1);
		m.getSumFrom1(10);

		m.div(10, 0);
		m.div(10, 3);
		m.div(10, 5);

		m.chanegeToHangle("1024");

	}
}

아래에 사용이유와 목적에 대해서 풀이를 해보겠음.
인덱스를 사용하기 위해서 배열로 접근을 하자.

String data : 내가 받은 숫자가 몇자리 수인지 알기 위해서 String으로 사용

String hangle ="공일이삼사오육칠팔구";

=> 왜 배열로 안할까?
문자열은 문자+배열이다.

  • 문자열 내부적으로 대괄호가 있기때문에 charAt메서드를 통해서 접근한다.
int num =  Integer.parseInt(data); 

자리수를 알게 되면 그 자리에 뭐가 들어있는지 알 수 있게 된다.
자리수를 알기위해서는 나머지, 나누기의 연산이 필요하다.
String type으로는 연산을 못하기 때문에 정수 형변환을 해준다.
(아직 data는 String 정수는 num)

for(int i =0; i<data.length(); i++)

배열은 생성됐을때 length 라는 상수가 자동으로 만들어지고 거기에 길이가 들어간다.
하지만 클래스에서 length를 구현하려면 String클래스안에있는 lenght라는 메서드를 사용해야한다.
( 메서드는 이름뒤에 소괄호임으로! => lenght()으로 바꿔줘야한다. )

여기서 알 수 있는 점!
배열과 클래스의 차이점
배열 => 내가 만들자마자 생성됨. 클래스 => 메서드로 index에 접근

hangle.charAt(0); => 0이라는 문자값을 의미힌다.

result += hangle.charAt(num % 10); //charAt(index)
num /= 10;

'num % 10'을 하게 되면 일의 자리수를 구할 수 있다.
10으로 나눈 나머지 필요하다.
왜냐하면 내가 찾던 한글이라는 배열에 인덱스 번호이기에.
String hangle은 클래스로 구현을 해놨기에 charAt 메서드 사용해야한다.

역순으로 출력.

for(int i = data.length()-1; i>-1; i--) {
			System.out.print(result.charAt(i));
		}

0개의 댓글

관련 채용 정보