1. 중복을 제외한다는 조건이 없기 때문에
ArrayList 클래스를 사용해서 배열리스트를 만들기
2.스캐너를 사용해서 0을 입력받으면 종료되는 프로그램
3.정수만 들어가기 때문에 <Integer> 을 사용 해서 강제성을 부여하기.
4. 입력을 몇번할지 모르니까 while(true), 종료 조건은 0번 입력받았을 때
5. data.add(입력받은값) 해서 배열리스트에 값을 저장
6. 만약 프로그램이 종료되면 ?
종료되기전까지 입력한 정수들의 평균을 출력
평균 : 입력한 정수들의 총합 / 입력한 정수의 개수
그리고, 내가 입력한 정수 중에서 짝수가 몇개인지를 출력
만약 내가 입력한 정수를 2로 나눴을때 나머지가 0이야?
ok
그러면 그 ok된 짝수들의 개수를 출력
짝수는 __개 입니다.
그리고, 그 짝수가 뭔지를 출력.
[_, _, _]
이클립스에서 구현 하기
for(int i = 0;i < data.size();i++) {
sum += data.get(i);
}
을 for each문으로 나타내기.
주의할점 :
홀수를 삭제 할 때,
for(int i = 0;i < data.size();i++) {
if(data.get(i) % 2 == 1) {
data.remove(i);
}
}
이렇게 하면 잘못된 코드 이다.
1. 0번째 부터 i 가 배열리스트 객체의 공간보다 작을때까지 루프.
2. 만약 i번째의 값을 2로 나눈거에 나머지가 1일때 (홀수이면)
해당 i번째의 값을 지워라.
근데, i번째 값을 지우면, i+1 번째 값이 i번째로 밀려온다.
1 2 3 4 5 6 7 8 9 10 이 있다고 가정하면,
1이 홀수라서 지워 졌다.
그러면,
2 3 4 5 6 7 8 9 10 이 되고,
2가 0번째 인덱스로 밀려온 상황인데,
for문은 i++이 되서 get(1)을 보게 된다.
get(1)에 해당하는건 숫자 3에 해당하니,
2를 체크하지 못하게 된다.
그래서,
int index = 0;
while(index < data.size()) {
if(data.get(index) % 2 == 1) {
data.remove(index);
continue;
}
index++;
}
이런 코드를 짜야한다.
'Java (국비) > Java 문제' 카테고리의 다른 글
예외처리 문제 (0) | 2023.05.20 |
---|---|
배열리스트 문제 2 (0) | 2023.05.20 |
상속 문제 (0) | 2023.05.15 |
자판기 프로그램 제작 2 (0) | 2023.05.12 |
자판기 프로그램 제작 1 (0) | 2023.05.12 |