1. 사용자 정의 메소드
1
2
3
4
5
6
7
8
9
10
11
|
class Test
{
public static void main(String[] args)
{
hi();
}
public static void hi()
{
System.out.println("Hi")
}
}
|
cs |
(1) void : 반환 값 없음
(2) 매개변수 : parameter
- 사용자 정의 메소드는 메인 메소드의 위, 아래 어디에 있던지 위치는 상관이 없다.
- JVM에 의해서 항상 메인 메소드가 가장 먼저 호출이 되고 실행된다.
- 메인 메소드에서 사용자 정의 메소드를 호출 할 때에는 매개변수의 갯수도 동일하게 주어야 한다.
- 메인 메소드에 의해서 호출된 사용자 정의 메소드는 실행문을 완료한 후 메인 메소드의 지역변수와 사용자 정의 메소드의 매개변수는 소멸되고 return을 만나면 해당 메소드를 호출했던 곳으로 다시 돌아간다.
2. 사용자 정의 메소드 문제
(1)
사칙연산을 각각 메소드로 사칙연산의 결과 값을 리턴한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
class Test
{
public static void main(String[] args)
{
System.out.println(add(10,2));
System.out.println(subtract(10,2));
System.out.println(divide(10,2));
System.out.println(multiply(10,2));
}
public static int add(int i, int j)
{
return i + j;
}
public static int subtract(int i, int j)
{
return i - j;
}
public static int divide(int i, int j)
{
return i / j;
}
public static int multiply(int i, int j)
{
return i * j;
}
}
|
cs |
- 출력값
12
8
5
20
(2)
정수값 하나를 넘겨주면 그 정수에 해당하는 구구단을 출력하는 메소드
(예 정수 3을 넘겨주면 3단을 출력). 리턴값 없음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class Test
{
public static void main(String[] args)
{
multiply(2);
}
public static void multiply(int num2)
{
for(int num1=1; num1<=9; num1++)
{
System.out.println(num2 + "*" + num1 + "=" + num2*num1);
}
}
}
|
cs |
- 출력값
2*1=2
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18
(3)
정수값 두개를 넘겨주면 첫 번째 매개변수 시작단부터 두번째 매개변수 끝단까지 출력하는 메소드
(예 3과 5를 넘겨주면 3단부터 5단까지 출력). 리턴값 없음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class Test
{
public static void main(String[] args)
{
multiply(3, 5);
System.out.println();
}
public static void multiply(int num1, int num2)
{
for(int i=num1; i<=num2; i++)
{
for(int j=1; j<=9; j++)
{
System.out.println(i + "*" + j + "=" + i*j);
}
System.out.println();
}
}
}
|
cs |
- 출력값
3*1=3
3*2=6
3*3=9
3*4=12
3*5=15
3*6=18
3*7=21
3*8=24
3*9=27
4*1=4
4*2=8
4*3=12
4*4=16
4*5=20
4*6=24
4*7=28
4*8=32
4*9=36
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
5*6=30
5*7=35
5*8=40
5*9=45
(4)
숫자하나를 넘겨주면 1부터 그 숫자까지 더해서 그 값을 리턴하는 메소드
(예 100을 넘겨주면 1부터 100까지 순차적으로 더해서 그 값을 리턴)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Test
{
public static void main(String[] args)
{
System.out.println(add(1, 100));
}
public static int add(int num1, int num2)
{
int sum=0;
for(int i=num1; i<=num2; i++)
{
sum+=i;
}
return sum;
}
}
|
cs |
-출력값
5050
(5)
정수값 두개를 넘겨주면 첫 번째 매개변수가 시작값부터 두 번째 매개 변수가 끝값까지 더해서 리턴
(5와 10을 넘겨주면 5부터 10까지 순차적으로 더해서 그 값을 리턴)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Test
{
public static void main(String[] args)
{
System.out.println(add(5, 10));
}
public static int add(int num1, int num2)
{
int sum=0;
for(int i=num1; i<=num2; i++)
{
sum+=i;
}
return sum;
}
}
|
cs |
- 출력값
45
(6)
정수값 하나를 넘겨주면 그 정수값에 대한 팩토리얼 값을 리턴
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Test
{
public static void main(String[] args)
{
System.out.println(fac(5));
}
public static int fac(int num)
{
int result=1;
for(int i=1; i<=num; i++)
{
result*=i;
}
return result;
}
}
|
cs |
- 출력값
120
(7)
숫자 하나를 넘겨주면 그 숫자가 소수이면 true를 리턴 소수가 아니면 false를 리턴하는 메소드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class Test
{
public static void main(String[] args)
{
System.out.println(isPrimeNumber(37));
}
public static boolean isPrimeNumber(int num)
{
if(num<=1) return false;
else
{
for(int i=2; i<num; i++)
{
if(num%i==0) return false;
}
}
return true;
}
}
|
cs |
- 출력값
true
(8)
7번 메소드를 이용하여 1부터 100사이의 모든 소수 출력. 7번메소드는 변경하면 안된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
class Test
{
public static void main(String[] args)
{
for(int i=1; i<=100; i++)
{
if(isPrimeNumber(i)) System.out.print(i+" ");
}
}
public static boolean isPrimeNumber(int num)
{
if(num<=1) return false;
else
{
for(int i=2; i<num; i++)
{
if(num%i==0) return false;
}
}
return true;
}
}
|
cs |
- 출력값
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
'Java > Day4' 카테고리의 다른 글
[Java] 삼항 연산자 & short circuit evaluation (0) | 2021.11.04 |
---|---|
[Java] 비트 연산자 (0) | 2021.11.04 |
[Java] 데이터 타입. 자료형에 따른 연산 (0) | 2021.11.04 |
[Java] switch case 구문 (0) | 2021.11.03 |