Vector 컬랙션을 이용하여 강수량의 평균을 유지 관리하는 프로그램을 작성하라. 강수량을 입력하면 백터에 추가하고현재 입력된 모든 강수량과 평균을 출력한다.
package chapter07;
import java.util.*;
public class RainFallEx {
//Vector를 받아서 출력하는 메소드
public static void print(Vector<Integer> v) {
Iterator<Integer> it =v.iterator(); // Interator it 역할은 받은 v를 돌려라!
while(it.hasNext())
System.out.print(it.next() + " "); //integer 값을 하나씩 꺼내옴
System.out.println();
}
//Vector를 받아서 평균을 정수로 반환하는 메소드
public static int average(Vector<Integer> v) {
Iterator<Integer> it = v.iterator();
int sum = 0; //누적점수 초기화
int cnt = 0; //카운트 초기화
while(it.hasNext()) {
int num = (int)it.next();
sum += num;
cnt++; //누적시킬때마다 카운트 해 줄 갯수가 필요하니 cnt도 ++을 해준다.
}
return sum/cnt;
}
//0을 입력할 때까지 강수량과 평균을 출력하는 시나리오를 짜야함
public static void main(String[] args) {
// 1.필요한 객체를 선언한다.
Scanner scan = new Scanner(System.in);
Vector<Integer> vector = new Vector<>();
// 2.0을 입력할 때까지 강수량목록(print)과 평균(average)을 출력한다.
while(true) {
System.out.println("강수량 입력(0입력시 종료) >>");
int num = scan.nextInt();
if(num==0) break;
else vector.add(num);
print(vector);
System.out.println("강수 평균:" + average(vector));
}
}
}