Java/JAVA의 정석_문제풀이

[6-23~24]연습문제 - 메서드

Jenny_yoon 2022. 11. 6. 18:28
728x90
반응형

[6-23] 다음과 같이 정의된 메서드를 작성하고 테스트하시오.

 


풀이

1) max() 메서드 생성

	 public static int max(int[]arr) {
		 
		 return max;
	 }

매개변수 int[]arr 을 이용한 메서드로 static 메서드임. 따라서 public static + 변수타입(int) + (매개변수) {} 

 

 

2) max()메서드 내 아래 기능 생성

	 public static int max(int[]arr) {
	
    	 if(arr==null || arr.length==0) //배열의 크기 : arr.length
     		return -999999;
    
		 return max;
	 }

 

3) max()메서드 내 아래 기능 생성

	 public static int max(int[]arr) {
			
    	 if(arr==null || arr.length==0)
     		return -999999;
    
    	 int max = arr[0]; //꼭 for문 위에 있어야함. 배열의 첫번째 값을 max로 초기화
    	 for(int i=1; i<arr.length; i++) { //배열 2번째 값부터 비교시작
         	
         	if(arr[i]>max)
            	max = arr[i]; } //max에 최대값 비교 후 저장
    
		 return max; 
	 }

 

정답
package pkg1;

public class Ex6_23 {
	 public static int max(int[]arr) {
			
    	 if(arr==null || arr.length==0)
     		return -999999;
    
    	 int max = arr[0];
    	 for(int i=1; i<arr.length; i++) {
         	
         	if(arr[i]>max)
            	max = arr[i]; }
    
		 return max; 
	 }
	
	public static void main(String[] args) {
		int[] data = {3,2,9,4,7};
		System.out.println(java.util.Arrays.toString(data));
		System.out.println("최대값:"+max(data));
		System.out.println("최대값:"+max(null));
		System.out.println("최대값:"+max(new int[] {}));//크기가 0인 배
	}
}

[6-24] 다음과 같이 정의된 메서드를 작성하고 테스트하시오.


 

풀이

1) abs()메서드 생성

	public static int abs(int value) {
		
		
		return ;
	}

 

2) abs()메서드 내 기능 삽입

	public static int abs(int value) {
		
		return Math.abs(value);
	}

나는 구글링을 해서 절대값을 반환하는 함수를 찾아 넣었다. 이렇게 해도 올바른 실행결과가 나옴!

하지만 책의 정답은 다름.

 

정답
	public static int abs(int value) {
		
		return value >=0 ? value : -value ;
	}

 

728x90
반응형