코딩/2-JAVA
C1202메서드리턴_개념
tree0505
2025. 7. 3. 12:18
반응형
- C1202메서드리턴_개념
- C1202개념01메서드리턴
package C1202메서드리턴_개념;
class TestReturn1 {
void 메서드명() // 메서드의 선언부
{
// 메서드의 구현부
return; // return 메서드 종료, void일 경우에는 return생략가능
}
void loop1() {
/*
i = 0 loop1 ==> i : 0
i = 1 loop1 ==> i : 1
i = 2 loop1 ==> i : 2
i = 3 loop1 ==> i : 3
i = 4 loop1 ==> i : 4
i = 5 종료
여기출력 loop1
*/
for(int i =0; i < 10; i++) {
if(i == 5) {
System.out.println("종료");
// for문 강제 종료
break; //반복문은 for를 멈추는것
}
System.out.println("loop1 ==> i : " + i);
}
System.out.println("여기출력 loop1"); //출력이 됨
}
void loop2() {
/*
i = 0 loop2 ==> i : 0
i = 1 loop2 ==> i : 1
i = 2 loop2 ==> i : 2
i = 3 loop2 ==> i : 3
i = 4 loop2 ==> i : 4
i = 5 종료
*/
for(int i =0; i < 10; i++) {
if(i == 5) {
System.out.println("종료");
// 메서드 강제종료
// 코드상에서 68번째 줄로 이동
return; //void를 멈추는것
}
System.out.println("loop2 ==> i : " + i);
}
System.out.println("여기출력 loop2"); //출력이 안됨
}
}
public class C1202개념01메서드리턴 {
public static void main(String[] args) {
// 보조 제어문 : break, continue
// 보조 옵션 : return;
// 1) 메서드를 종료시키는 보조제어문
// 특징) 마치 반복문의 break와 같다.
// 하지만 반복문 break는 반복문만 종료되고 return은 메서드 전체를 종료시킨다.
TestReturn1 t1 = new TestReturn1();
t1.loop1();
System.out.println("----------------------------------");
t1.loop2();
}
}
- C1202개념02메서드리턴
package C1202메서드리턴_개념;
class TestReturn2_1 {
int result; //리턴이 어려우면 변수를 더 쓰면 된다.
void plus(int a , int b) {
result = a + b;
// return;
}
}
class TestReturn2_2 {
int plus(int a , int b) {
// result 변수가 없어도 기능을 만들수있다.
return a + b;
}
}
//리턴의 사용방법
// return 메서드를 사용하면 클래스내의 변수한개를 줄일수있다.
// 굳이 쓰지않아도 프로그램 만드는데는 아무런지장이 없다.
// 하지만 프로그래밍이 능숙해지면 자연히쓰게된다.
// 리턴메서드 만드는법
// 1) int ==> main 으로 보낼 자료형
// 2) plus(int a , int b) ==> 이름
// 3) { return + 내보낼 값 } ==> 이값은 main 으로 보내진다.
public class C1202개념02메서드리턴 {
public static void main(String[] args) {
TestReturn2_1 t1 = new TestReturn2_1();
t1.plus(10, 3);
// 방법1) 변수에 저장해서 재활용
int num1 = t1.result;
System.out.println(num1);
// 방법2) 바로 사용
System.out.println(t1.result);
System.out.println("---------------------------");
TestReturn2_2 t2 = new TestReturn2_2();
// 방법1) 변수에 저장해서 재활용
int num2 = t2.plus(10, 3);
System.out.println(num2);
// 방법2) 바로 사용
System.out.println(t2.plus(10, 3));
}
}
- C1202개념03메서드리턴
package C1202메서드리턴_개념;
class TestReturn3 {
int num; // 1 ~ 10
// 자바 디자인패턴 (setter, getter 메서드)
// set메서드 : 변수 num에 값을 저장
void setNum(int num) {
this.num = num;
}
// get메서드 : 변수 num의 값을 반환(return)
int getNum() {
return num;
}
}
public class C1202개념03메서드리턴 {
public static void main(String[] args) {
System.out.println("리턴을 사용하는경우와 안하는경우 ");
TestReturn3 t1 = new TestReturn3();
t1.setNum(10);
//1) 사용하는경우
System.out.println("1) 사용하는경우");
int num1 = t1.getNum();
System.out.println(num1);
//2) 사용안하는경우
System.out.println("2) 사용안하는경우");
int num2 = t1.num; //직접 꺼내서 쓰는 경우를 안 좋아한다.
System.out.println(num2);
}
}
- C1202개념04메서드리턴
package C1202메서드리턴_개념;
import java.util.Arrays;
class TestReturn4_1{
// int[] arr = {87, 12, 21, 56, 100}
int countMuliple4(int[] arr) {
int cnt = 0;
for(int i=0; i<arr.length; i++) {
if(arr[i] % 4 == 0) {
cnt += 1;
}
}
return cnt;
}
int[] countMulipleArray(int[] arr) {
int cnt = countMuliple4(arr);
int[] temp = new int[cnt];
// temp = {12, 56, 100}
int j = 0;
for(int i=0; i<arr.length; i++) {
if(arr[i] % 4 == 0) {
temp[j] = arr[i];
j += 1;
}
}
return temp;
}
}
class TestReturn4_2{
int cnt = 0; // cnt = 3
int[] reArr = null; // reArr = {12, 56, 100}
//리턴이 어려우면 변수를 적으면 된다.
void countMuliple4(int[] arr) {
cnt = 0;
for(int i=0; i<arr.length; i++) {
if(arr[i] % 4 == 0) {
cnt += 1;
}
}
}
void countMulipleArray(int[] arr) {
// cnt변수에 4의 배수의 개수를 저장하기 위한 호출문
countMuliple4(arr);
reArr = new int[cnt];
int j = 0;
for(int i=0; i<arr.length; i++) {
if(arr[i] % 4 == 0) {
reArr[j] = arr[i];
j += 1;
}
}
}
}
public class C1202개념04메서드리턴 {
public static void main(String[] args) {
// 리턴은 참조변수도 가능하다.
int[] arr = {87, 12, 21, 56, 100};
System.out.println("[리턴사용할경우]");
// 문제 1) 4의 배수의 개수를 리턴해주는 메서드
TestReturn4_1 test1 = new TestReturn4_1();
int cnt1 = test1.countMuliple4(arr);
System.out.println("cnt1 = " + cnt1);
// 문제 2) 4의 배수만 배열 타입으로 리턴해주는 메서드
int[] arrTemp1 = test1.countMulipleArray(arr);
System.out.println(Arrays.toString(arrTemp1));
System.out.println("-------------------------------");
System.out.println("[리턴사용안할경우]");
System.out.println("변수가 2개 추가로 더필요하다.");
// 문제 1) 4의 배수의 개수를 리턴해주는 메서드
TestReturn4_2 test2 =new TestReturn4_2();
test2.countMuliple4(arr);
int cnt2 = test2.cnt;
System.out.println("cnt2 = " + cnt2);
// 문제 2) 4의 배수만 배열 타입으로 리턴해주는 메서드
test2.countMulipleArray(arr);
int[] arrTemp2 = test2.reArr;
System.out.println(Arrays.toString(arrTemp2));
}
}
- C1202개념05오버로딩
package C1202메서드리턴_개념;
class MethodOverloading{
//add로 똑같이 하고. 들어가는
//매게변수가 다르면 알아서 들어간다. (int x, int y)
int add(int x, int y) {
return x + y;
}
int add(int x, int y, int z) {
return x + y + z;
}
int add(int[] arr) {
int total = 0;
for(int i=0; i<arr.length; i++) {
total += arr[i];
}
return total;
}
int add(double f) {
return 0;
}
}
public class C1202개념05오버로딩 {
public static void main(String[] args) {
// overloading
// 메서드 오버로딩이란? 메서드를 같은이름으로 만들어도
// 전달되는 값이 다르면 서로 다른 메서드로 인식하겠다는 의미
MethodOverloading mol = new MethodOverloading();
int[] arr = {1, 2, 3, 4, 5};
int r1 = mol.add(10, 3);
int r2 = mol.add(10, 3, 1);
int r3 = mol.add(arr);
System.out.println("r1 = " + r1);
System.out.println("r2 = " + r2);
System.out.println("r3 = " + r3);
}
}
반응형