최대값과 최소값 찾기 - 배열의 요소 중 제일 큰 값과 제일 작은 값을 찾음

객체 안에 메서드를 정의해서 main클래스에서 호출해 사용할 것이다.

 

Scanner 클래스를 사용할 것이고, 콘솔에서 입력한 값을 배열로 받아서 최대값과 최소값을 구한다.

 

 int( ) 

Scanner scanner = new Scanner(System.in);
	int scan() {
		String str = scanner.next();
		int tmp = Integer.parseInt(str);
		
		return tmp;
	}

클래스의 위에 멤버변수로 Scanner인스턴스를 만들고 스캐너 인스턴스로 받은 모든 값을 int형으로 바꾸는 메서드 int( ) 를 정의했다.

 

findMaxMin()

void findMaxMin() {
		
		int[] arr = new int[5];
		
		System.out.println("5개의 숫자를 입력하세요.");
		for(int i = 0; i<arr.length; i++) {
			arr[i] = scan();
		}
		
        // 값을 입력받고 난 뒤 
        
		int max=arr[0], min=arr[0];
		//최대값과 최소값을 비교하기 위해 변수를 선언한 후 배열의 첫 요소를 저장한다.
        
		for(int i = 0; i<arr.length; i++) {
						
			if (min > arr[i]) {
				min = arr[i];
			}
			if (max < arr[i]) {
				max = arr[i];
			}	
		}
		System.out.println("최대값 : "+max+" 최소값 : "+min);
	}
		

첫 요소를 선택해서 배열의 index가 커지면서 기준값과 배열의 요소값을 비교해

크거나 작으면 각각 max, min에 저장한 뒤 그 것을 반복한다.

for문을 벗어날 때면 i가 배열의 길이만큼 커져서 배열의 모든 숫자를 비교한 것이 된다.

어짜피 비교할 변수가 두개이므로 한방에 구하도록 한 for문 안에 구현했다.

 

전체 코드

public class ArrayPrac_maxmin {
/* 최대값과 최소값
 * 배열의 요소 중 제일 큰 값과 제일 작은 값을 찾음
 */
	Scanner scanner = new Scanner(System.in);
	int scan() {
		String str = scanner.next();
		int tmp = Integer.parseInt(str);
		
		return tmp;
	}
	
	void findMaxMin() {
		
		int[] arr = new int[5];
		
		System.out.println("5개의 숫자를 입력하세요.");
		for(int i = 0; i<arr.length; i++) {
			arr[i] = scan();
		}
		
		int max=arr[0], min=arr[0];
		
		for(int i = 0; i<arr.length; i++) {
						
			if (min > arr[i]) {
				min = arr[i];
			}
			if (max < arr[i]) {
				max = arr[i];
			}	
		}
		System.out.println("최대값 : "+max+" 최소값 : "+min);
	}
		
	
	public static void main(String[] args) {
		ArrayPrac_maxmin mm = new ArrayPrac_maxmin();
		mm.findMaxMin();
		mm.scanner.close();
	}
}

 

결과

+ Recent posts