수업

+12 메소드 예제

hs_developer 2022. 5. 19. 09:26

1. 1~10까지 출력하는 메소드 구현

 

1 2 3 4 5 6 7 8 9 10
	static void ten() // 자체 출력이기 때문에 void
	{
		int i;
		
		for(i=1; i<=10; i++)
		{
			System.out.print(i + " ");
		}
		
	}
	
	public static void main(String[] args) {

		ten();

	}

 


2. 1~10까지 합을 구하는 메소드 구현

 

1-10의 합: 55
	static void sumTen()
	{
		int sum = 0;
		
		for(int i=1; i<=10; i++)
		{
			sum += i;
		}
		System.out.println("1-10의 합: " + sum);

	}
	
	public static void main(String[] args) {

		sumTen();

	}

 

// 다른 방법 → 값 받아와서 처리

	static int sumTen()
	{
		int sum = 0;
		
		for(int i=1; i<=10; i++)
		{
			sum += i;
		}
		
		return sum; // **

	}
	
	public static void main(String[] args) {

		int sum = sumTen(); // **
		System.out.println("1-10의 합: " + sum);
	}

 

 


3. 1~n까지 합을 구하는 메소드 구현

 

정수 입력: 
10
1-10까지의 합: 55
	static void sumNum()
	{
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("정수 입력: ");
		int num = sc.nextInt();
		
		int sum = 0;
		for(int i=0; i<=num; i++)
		{
			sum += i;
		}
		System.out.println("1-" + num + "까지의 합: " + sum);
	}
	
	public static void main(String[] args) {

		sumNum();
	}

 

 


4. 두 정수의 나눗셈 결과를 구해주는 메소드 구현

 

정수 2개 입력: 
10 3
10/3 = 3.33
	static void div() // 자체에서 출력하기 때문에 void
	{
		Scanner sc = new Scanner(System.in);
		
		System.out.println("정수 2개 입력: ");
		int n1 = sc.nextInt();
		int n2 = sc.nextInt();
		
		if(n2==0)
			System.out.println("0으로 나눌 수 없다.");
		else
			System.out.printf("%d/%d = %d\n", n1, n2, n1/n2);
	}
	
	public static void main(String[] args) {
		
		div();
	}

 

 

// 다른 방법

	static String div(int n1, int n2)
	{
		String result = "";
		
		if(n2==0)
			result = "0으로 나눌 수 없다.";
		else
			result = String.format("%d/%d = %.2f\n", n1, n2, n1/(double)n2); // string format?
		
		return result;
	}
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("정수 2개 입력: ");
		int n1 = sc.nextInt();
		int n2 = sc.nextInt();
		
		String result = div(n1, n2);
		System.out.println(result);
	}

 

한 클래스에 메소드 이름이 같아도 매개 변수가 다르면 다른 메소드로 인식한다 → 오버 로딩

 

 

 


5. 문자열의 소문자를 대문자로 바꿔주는 메소드 구현

 

소문자 입력: 
change to upper letter

대문자로 변환: CHANGE TO UPPER LETTER

 

	static String capital()
	{
		Scanner sc = new Scanner(System.in);
		
		System.out.println("소문자 입력: ");
		String str = sc.nextLine(); // 공백 포함해서 출력 시킨다
		
		System.out.println();
		
		String bb = str.toUpperCase();
		System.out.println("대문자로 변환: " + bb);
		
		return str;
	}
	
	public static void main(String[] args) {
		
		capital();
	}

 

 

다른 방법 깃헙 참고

 

 

 

 


6. 문자열을 거꾸로 출력하는 메소드 구현

 

글자 입력: 
거꾸로 출력해보아라
라아보해력출 로꾸거
static String reverse()
	{
		Scanner sc = new Scanner(System.in);
		
		System.out.println("글자 입력: ");
		String data = sc.nextLine();
		
		for(int i=data.length()-1; i>=0; i--)
		{
			System.out.print(data.charAt(i));
		}
		
		return data;
	}
	
	public static void main(String[] args) {
		
		reverse();
	}

 


7. 정수를 한글로 바꿔주는 메소드 구현 

 

정수 입력: 9853
구팔오삼
문자열 입력: 사오육칠
4567

 

 

	// 정수 → 한글 : charAt()
	static void change() // void: 요청, 출력 다 한다
	{
		String h = "공일이삼사오육칠팔구";
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("정수 입력: ");
		int num = sc.nextInt();
		
		// 문자열 변환
		String strNum = String.valueOf(num);
		String result = "";
		
		for(int i=0; i<strNum.length(); i++)
		{
			char c = strNum.charAt(i);
			result += h.charAt(c-48); // -48 의미 찾기
		}
		System.out.println(result);
		
	}
	
	// 한글 → 정수
	static void change2()
	{
		String h = "공일이삼사오육칠팔구";
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("문자열 입력: ");
		String s = sc.next();
		
		String result = "";
		for(int i=0; i<s.length(); i++)
		{
			for(int j=0; j<h.length(); j++)
			{
				if(s.charAt(i)==h.charAt(j))
				{
					result+=j;
				}
			}
		}
		System.out.println(result);
	}
	
	public static void main(String[] args) {
	
		change();
//		change2();
	}