수업
+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();
}