728x90
배열
Array
예제를 통해 배열을 살펴보자.
public class AccountingArrayApp {
public static void main(String[] args) {
double valueOfSupply = Double.parseDouble(args[0]);
double vatRate = 0.1;
double expenseRate = 0.3;
double vat = valueOfSupply*vatRate;
double total = valueOfSupply + vat;
double expense = valueOfSupply*expenseRate;
double income = valueOfSupply-expense;
double dividend1 = income*0.5;
double dividend2 = income*0.3;
double dividend3 = income*0.2;
System.out.println("Value of supply : "+valueOfSupply);
System.out.println("VAT : "+vat);
System.out.println("Total : "+total);
System.out.println("Expense : "+expense);
System.out.println("Income : "+income);
System.out.println("Dividend 1 : "+dividend1);
System.out.println("Dividend 2 : "+dividend2);
System.out.println("Dividend 3 : "+dividend3);
}
}
예제의 코드 중에서,
double dividend1 = income*0.5;
0.5는 동업자1의 지분율이 50%를 나타낸다는 것이다.
여기에 이름을 붙인다면 0.5 의 의미가 더 분명해질 것이다.
동업자들의 지분율의 의미를 더욱 분명하게 하기 위해서 지분율을 변수화 시켜 보자.
public class AccountingArrayApp {
public static void main(String[] args) {
double valueOfSupply = Double.parseDouble(args[0]);
double vatRate = 0.1;
double expenseRate = 0.3;
double vat = valueOfSupply*vatRate;
double total = valueOfSupply + vat;
double expense = valueOfSupply*expenseRate;
double income = valueOfSupply-expense;
double rate1 = 0.5;
double rate2 = 0.3;
double rate3 = 0.2;
// 1억줄의 코드가 있다면...
double dividend1 = income*rate1;
double dividend2 = income*rate2;
double dividend3 = income*rate3;
System.out.println("Value of supply : "+valueOfSupply);
System.out.println("VAT : "+vat);
System.out.println("Total : "+total);
System.out.println("Expense : "+expense);
System.out.println("Income : "+income);
System.out.println("Dividend 1 : "+dividend1);
System.out.println("Dividend 2 : "+dividend2);
System.out.println("Dividend 3 : "+dividend3);
}
}
rate1, rate2, rate3은 상당히 흔한 이름이다. rate라는 동일한 이름을 사용해서 괜찮지 만약 다른 이름들을 가지고 있다면 같은 성격의 데이터인지 분명하지 않을 수 있다.
그런데 변수화 시킨 코드 사이에 예를 들어 1억 줄의 코드가 있다면, 그리고 그 안에서 누군가가 rate의 이름을 바꿨다면 우리의 프로그램은 이상하게 작동할 것이다. 여기서 얻을 수 있는 것은 변수가 많을 수록, 변수가 더럽혀지기 쉽다는 것이다.
이럴 때 사용할 수 있는 환상적인 도구가 바로 배열이다.
public class AccountingArrayApp {
public static void main(String[] args) {
double valueOfSupply = Double.parseDouble(args[0]);
double vatRate = 0.1;
double expenseRate = 0.3;
double vat = valueOfSupply*vatRate;
double total = valueOfSupply + vat;
double expense = valueOfSupply*expenseRate;
double income = valueOfSupply-expense;
double[] dividendRates = new double[3];
dividendRates[0] = 0.5;
dividendRates[1] = 0.3;
dividendRates[2] = 0.2;
double dividend1 = income*dividendRates[0];
double dividend2 = income*dividendRates[1];
double dividend3 = income*dividendRates[2];
System.out.println("Value of supply : "+valueOfSupply);
System.out.println("VAT : "+vat);
System.out.println("Total : "+total);
System.out.println("Expense : "+expense);
System.out.println("Income : "+income);
System.out.println("Dividend 1 : "+dividend1);
System.out.println("Dividend 2 : "+dividend2);
System.out.println("Dividend 3 : "+dividend3);
}
}
70000.0 입력값을 넣어보니 동일하게 값이 나오는 것을 확인할 수 있다.
이전과 동일하게 동작하는 코드이지만,
배열을 도입함으로서 서로 연관된 값이라는 것을 쉽게 알 수 있고 위에서 변수화를 했을 때는 변수가 3개였는데
배열을 사용했을 때에는 하나의 변수만 존재하기 때문에 변수가 더럽혀질, 오염될 가능성이 현저하게 줄어들었다.
PS. 배열은 다음 시간에 알아볼 반복문과 함께 사용한다면 폭발적인 시너지 효과를 발휘한다.
'youtube.com|user|egoing2 > JAVA1' 카테고리의 다른 글
JAVA1 - 16.1 나의 앱 만들기 (메소드) (8) | 2022.01.24 |
---|---|
JAVA1 - 15.3 나의 앱 만들기 (반복문) (4) | 2022.01.24 |
JAVA1 - 15.1 나의 앱 만들기 (조건문) (2) | 2022.01.22 |
JAVA1 - 14.3 나의 앱 만들기 (입력값 도입) (2) | 2022.01.22 |
JAVA1 - 14.2 나의 앱 만들기 (변수 도입) (0) | 2022.01.21 |