코딩/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);
		
	}
}
반응형