최대값과 최소값 찾기 - 배열의 요소 중 제일 큰 값과 제일 작은 값을 찾음
객체 안에 메서드를 정의해서 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();
}
}
결과
'JAVA > 실습' 카테고리의 다른 글
[java][실습] 006 이차원 배열에서 좌표에 X 찍기 (0) | 2020.07.05 |
---|---|
[java][실습] 005 오름차순, 내림차순으로 배열요소 정렬 (0) | 2020.07.05 |
[java][실습] 004 배열 섞기 (0) | 2020.07.05 |
[java][실습] 002 별 찍기(삼각형, 역삼각형, 반삼각형, 육각형) (0) | 2020.07.02 |
[java][실습] 001 shift 사용해 글자 추출하기 (0) | 2020.07.02 |