JAVA

[JAVA] 메서드

sian han 2022. 2. 16. 21:48

 

※메서드 (=함수)

     - 특정 기능을 수행하는 최소 실행 단위
     - 자주 반복하여 사용하는 내용에 대해 특정 이름으로 정의한 묶음
     - 필요할 때마다 호출하여 원하는 작업을 시킬 수 있다

     - 불필요한 반복 제거
     -  코드의 재사용성을 높이는 역할

 

  

 

 

▶ 메서드 종류

[1] 기본적으로 제공되는 메서드(내장 메서드)
     -  println(), parseInt(), toUpperCase()
[2] 사용자 정의 메서드

 

 

 

▶메서드 형식

public static double Multipl(double a, double b) {  //접근 제한자 반환형 메서드이름(매개변수)
		double ab=a*b;	        //기능구현;
		return ab;		//return 반환값 [결과값];
	}

용어

   입력값 ) 매개변수, parameter, 인수, 인자 
   결과값의 형태 ) 반환형, 반환타입, return type

 

 

 

 

 

▶메서드 만들기

 - 메서드는 메인 밖에다가 만들어야 함

 

1.입력값 결정 - 매개변수 지정

  - 입력값의 자료형을 넣는 자리는 비워두기

public static	toCm(double a)

 

2. 매개변수를 이용하여 기능구현

public static	toCm(double a){
double c = a*2.54;
}

 

3. 결과값 return

public static		 toCm(double a){
		double c = a*2.54;
		return c;
	}

 

4. 반환타입 결정 : retrun 해주는 결과값의 자료형

   - retrun 해주는 결과값(변수)의 자료형을 메서드 이름 앞에 써준다

public static double toCm(double a){
		double c = a*2.54;
		return c;
	}

순서 : 반환타입자료형 결과값받는변수 = 메서드명(매개변수);

 

 

 

★retrun

 [1] 메서드의 실행을 종료하고 호출원으로 복귀함 (자신을 호출한 곳으로 감)
 [2] 메서드의 처리 결과를 호출원으로 돌려주는 기능도 함
 
  - 반환값이 없는 메서드 : 반환타입에 void 쓴다
 
  - 한개의 값만 반환해 줌
        ▽
     return a;
     return a,b; // error

 

 

 

 

▶메서드 호출하기

1) 메서드명을 쓰고 ()를 붙인다

calcInterest();

 2) ()안에 매개변수 값을 넣는다(매개변수 자료형에 해당하는값)

calcInterest (1000000);

3) 결과값을 받는다 - 반환타입에 해당하는 자료형의 변수에 결과값을 받는다

double d = calcInterest (1000000);

 

 

 

 

▶지역변수  - 메서드나 {} 블럭에서 선언된 변수
  
  

 [1]

  해당 메서드가 시작될때 생성, 해당 메서드를 빠져나갈 때 사라짐
  
 [2] {} 블럭에서 선언된 경우

     {} 블럭이 시작될 때 생성, {} 블럭을 빠져나갈 때 사라짐

public static int getSum (int cnt) { // cnt => 매개변수: getSum()이 종료되면소멸
		int sum=0; // 지역변수: getSum()이 종료되면소멸
		
		for(int i=1;i<=cnt;i++) { // i=>지역변수 - 블럭변수
			sum+=i;
		}
		
		return sum;
		
		}
	}

 

 

 

 

 

◈ 입력된 두 수 사이의 홀수의 합 구하기

 - 마지막 for 문 돌릴때 , if 문 사용하지않고 i++ => i+=2 사용해서 더하기 !!!!!

Scanner sc = new Scanner(System.in);
		System.out.println("두 수를 입력하세요");
		int  num1 =  sc.nextInt();  //3, 4
		int  num2 =  sc.nextInt();   

		//swap
		if(num1>num2) {
			int temp=num1;
			num1=num2;
			num2=temp;
		}
		
		//num1 = (num1%2==1)?num1:num1+1;
		if(num1%2==0) {
			num1++;
		}
		
		int sum = 0;
		for (int i=num1;i<=num2 ;i+=2 ){
			sum+=i;
		}
		System.out.println(num1 +"~"+ num2 +"사이의 홀수의 합:" + sum);

		
	}

}