메소드에서 출력/확인/알려주기에 따른 차이
- 기능이 출력해야하면, 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};