메소드에서 출력/확인/알려주기에 따른 차이

- 기능이 출력해야하면, sysout으로 출력해서 값을 보여줘야돼 => 메인: 클래스이름(좌표,)선언;
- 기능이 확인하기이면, 공식만/ => 보고싶어서 메인에 sysout(이름(좌표값);
- 기능이 알려주기이면, return 값으로 바로 보여주면 됨. => 메인에서 sysout(이름(좌표값 또는 배열이름만));

(1. 두 방법으로 최대공약수를 구하는 메소드 이후) / 2.최대공약수를 이용하여 최소 공배수를 구하는 메소드를 작성하세요.

public static void main(String[] args) {
// 재사용성이 높은 메소드를 보여주기 위한 비교
//(1. 두 방법으로 최대공약수를 구하는 메소드 이후) / 2.최대공약수를 이용하여 최소 공배수를 구하는 메소드를 작성하세요.
//두 정수를 A, B라하고 최대 공약수를 G, 최소 공배수를 L이라고 했을때
//A=Ga, B=Gb로 표현할 수 있고, L=G*a*b
//L=A*B/G로 나타낼 수 있다.

	System.out.println(gcd1(8, 16));
	gcd2(8,16);
}

	/*
	 * 기능: 두 정수의 최대공약수를 구하기
	 * 매개타입: 두 정수 => int num1, int num2
	 * 리턴타입: 정수 => int res
	 * 메소드명: gcd1
	 * */

	public static int gcd1(int num1, int num2) {
		int res=1;
		for(int i=1; i<=num1 && i<num2; i+=1) {
			if(num1%i==0 && num2%i==0){
				res=i;

			}
		}
		return res;
	}
	/* 기능: 두 정수의 최대 공약수를 출력하는 메소드
	 * 매개변수: 두 정수=> int num1, int num2
	 * 리턴타입: 없음 => void
	 * 메소드명: gcd2
	 * */
	public static void gcd2(int num1, int num2) {
		int res=1;
		for(int i=1; i<=num1 && i<num2; i+=1) {
			if(num1%i==0 && num2%i==0){
				res=i;
			}
		}System.out.println(res);
	}
}
		/* 기능: 두 정수의 최소 공배수를 알려주는 메소드 //구하는 법 L=A*B/G
		 * 매개변수: 두 정수=> int num1, int num2
		 * 리턴타입: 최소 공배수 => 정수 => int
		 * 메소드명: lcm ->소문자L
		 * */		
		public static int lcm(int num1, int num2) {
			int res=num1*num2/gcd1(num1, num2);
			return res;
		}
}

공식: 최대공약수 ⇒ num1%i==0 && num2%i==0

공식: 최소공배수⇒ num1*num2/최대공약수

char *, - 을 count번 출력하도록 메소드를 생성

public static void main(String[] args) {
/*		*****
*********
-----			을 출력하도록 메소드를 생성하여 테스트해보세요.*/

printChar1('*',5);
printChar1('*',9);
printChar1('-',5);

}
/* 기능 : 주어진 문자(ch)를 주어진 정수번(count) 반복하여 출력하는 메소드
 * 매개변수 : char ch, int count
 * 리턴타입 : void
 * 메소드명: printChar1
 * */

public static void printChar1(char ch, int count) {
	for(int i=1; i<=count; i+=1) {
		System.out.print(ch);
	}System.out.println();
}

주어진 문자(ch)를 주어진 정수번(count) 반복하여 하나의 문자열로 알려주는 메소드

public static void main(String[] args) {
printChar2('*',5);
System.out.println(printChar2('*',5));
System.out.println(printChar2('*',3)+printChar2('&',2));

}
/*기능: 주어진 문자(ch)를 주어진 정수번(count) 반복하여 하나의 문자열로 알려주는 메소드
 *매개변수: 문자, 횟수 => char ch, int count
 *리턴타입: 문자열 => String
 *메소드명: printChar2
 * */

public static String printChar2(char ch, int count) {
	String str = "";
	for(int i=0; i<=count-1; i+=1) {	//0부터 시작이라 count-1
		str=str+ch; //기존문자 더하기
	 }
	return str;
 }
}

메소드를 이용한 기본 반쪽 별모양트리만들기 + Enum 이용해서 불러오기

	
public static void main(String[] args) {

/*다음과 같이 출력하는 메소드를 만드세요.
* *
* **
* ***
* ****
* *****
* */
printLeftTriangle('*',5);

	/* 다음과 같이 출력하는 메소드를 만드세요
	 *     *
	 *    **
	 *   ***
	 *  ****
	 * *****
	 *  */

printRightTriangle('*',5);

	printTriangle('+', 5, TriangleShape.LEFT_TRIANGLE);
	printTriangle('+', 5, TriangleShape.RIGHT_TRIANGLE);

}
/* 기능: 주어진 문자를 이용하여 왼쪽으로 붙은 삼각형을 n줄 출력하는 메소드
 * 매개변수: 문자, n줄 => char ch, int n
 * 리턴타입: void
 * 메소드명: printLeftTriangle
 * */

public static void printLeftTriangle(char ch, int n){
	for(int i=1; i<=n; i+=1) { //5줄
		for(int k=1; k<=i; k+=1) { //*
			System.out.print(ch);
		}for(int k=1; k<=n; k+=1) {
			System.out.print(" ");
		}
		System.out.println();
	}

}
/* 기능: 주어진 문자를 이용하여 오른쪽으로 붙은 삼각형을 n줄 출력하는 메소드
 * 매개변수: 문자, n줄 => char ch, int n
 * 리턴타입: void
 * 메소드명: printRightTriangle
 * */
public static void printRightTriangle(char ch, int n) {
	for(int i=1; i<=n; i+=1) { //줄
		for(int k=1; k<=n-i; k+=1) { // " "
			System.out.print(" ");
		}
		for(int k=1; k<=i; k+=1) {
			System.out.print(ch);
		}
		System.out.println();
	}
}
/*기능	: 주어진 문자를 이용하여 n줄 삼각형 출력하는데 주어진 삼각형 종류에 맞게 출력하는 메소드
 *매개변수: 문자, n줄, 삼각형 종류 => char ch, int n, TriangleShape shape(열거형으로 만들거래)
 *리턴타입: 출력할거라 없음 => void
 *메소드명: printTriangle
 * */
public static void printTriangle(char ch, int n, TriangleShape shape) {
	switch(shape) {
	case LEFT_TRIANGLE:
		printLeftTriangle(ch,n);
		break;
	case RIGHT_TRIANGLE:
		printRightTriangle(ch,n);
		break;
	}
 }
}
enum TriangleShape{LEFT_TRIANGLE, RIGHT_TRIANGLE};