for문의 단점은 증감문이 규칙적으로 변한다는 점이다.
그러나 동전은 10,50,100,500의 크기를 가지고 있으니 평범한 증감문으로는 이를 표현할 수가 없다.
따라서, 이를 해결하기 위해 배열을 사용한다.
잘 생각해보자.
count=money/500;
money=money%500;
System.out.println("500원 갯수 : "+count);
System.out.println("남은 금액 : "+money);
count=money/500;
money=money%100;
System.out.println("100원 갯수 : "+count);
System.out.println("남은 금액 : "+money);
count=money/50;
money=money%50;
System.out.println("50원 갯수 : "+count);
System.out.println("남은 금액 : "+money);
count=money/10;
money=money%10;
System.out.println("10원 갯수 : "+count);
System.out.println("남은 금액 : "+money);
이렇게 구하게 되면 너무, 노가다적 배열이 된다.
여기서 변수로 두게 될 것은 500, 100, 50, 10이고, 나머지는 상수로 둔다.
변수를 배열로 묶어보자.
int coin[]= {500,100,50,10};
배열로 묶게 되면 배열값의 위치만 알게 되면 그 배열값을 가져올 수 있다.
따라서,
public class Coin {
public static void main(String[] args) {
int money=1250;
int count=0;
int coin[]= {500,100,50,10,1};
System.out.println("시작 금액 : "+money);
for (int i = 0; i < coin.length; i++) {
count=money/coin[i];
money=money%coin[i];
System.out.println(coin[i]+"원 갯수 : "+count);
System.out.println("남은 금액 : "+money);
}
}
}
다음과 같이 i를 변수로 두고, 변수에 따른 배열값을 불러오면 for문을 이용해서도 규칙성 없는 변수도 사용할 수 있다.
반응형
'JAVA' 카테고리의 다른 글
JAVA 실습 6. while, break, continue를 이용한 난수맞추기 게임 만들기 (0) | 2020.03.24 |
---|---|
JAVA 실습 4. for문을 이용해 배열을 뒤집어서 출력하기 (0) | 2020.03.24 |
JAVA 실습 1. 사용자로부터 입력 받은 구구단 프로그램 완성하기. (0) | 2020.03.23 |
문자열을 비교하는 방법. equals. (0) | 2020.03.23 |
5. 반복문 (0) | 2020.03.23 |