만들기 1 포스팅과 달라진게 거의 없다.
가장 큰 차이점은 입력값이 바뀔때마다 코드를 수정하지 않아도 된다는 점이다.
args라는 java의 변수를 이용해서 가능한 일이다.
코드부터 적겠다.
public class AccountingApp {
public static void main(String[] args) {
double ValueOfSupply = Double.parseDouble(args[0]);
double vatRate = 0.1;
double vat = ValueOfSupply*vatRate;
double expenseRate = 0.3;
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 :" + (vat+ValueOfSupply));
System.out.println("Expense :" + expense);
System.out.println("Income :" + income);
System.out.println("Dividend1 :" + dividend1);
System.out.println("Dividend2 :" + dividend2);
System.out.println("Dividend3 :" + dividend3);
}
}
아까 포스팅 코드와 다른 점은 저 윗줄의 args[0]; 부분이다. 입력값을 매번 직접 바꾸는 대신에 사용자가 입력하는 값을 변수로 받게 해주는거다. 근데 java의 변수 args는 String이 기본이기 때문에,
Double.parseDouble(); 이라는 method를 사용해서 double 값으로 변환해서 사용할 수 있도록 했다.
사실상 이전 코드와 다른 점은 이거 하나다.
약간은 김빠지는 변화일 수 있으나, 나름 사용자가 입력하는 값만 달라지면 코드를 바꾸지 않아도 다른 값을 입력할 수 있다는게 큰 변화다.
다만 eclipse에서 활용할때는 굉장히... 귀찮다.
변수를 바꾸고 싶을때마다 역시나 새로 지정을 해줘야해서 하면서도
그냥 어디 인풋창이 띄워지고 거기다가 값을 입력하면 저절로 값이 나오는 그런 기능이 있었으면 좋겠다는 생각이 절로 들었다.
그리고 이 아이디어는 내가 지금 따로 진행하고 있는 엑스형 프로젝트와도 연결될 수 있는 부분이기 때문에 조금 더 관심이 갔다. 여튼 이 부분은 나중에 더 깊이 알아봐야지.
우선 eclipse 없이 윈도우에서 실행시킬 수 있는 방법이다.
cmd를 이용하는 것.
귀찮은 나머지 그냥 코드처럼 아래와 같이 작성하겠다.
Microsoft Windows [Version 10.0.18363.1198]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\user>cd C:\Users\user\Desktop\Java\MyApp
C:\Users\user\Desktop\Java\MyApp>dir
C 드라이브의 볼륨에는 이름이 없습니다.
볼륨 일련 번호: 008F-76B2
C:\Users\user\Desktop\Java\MyApp 디렉터리
2020-11-18 오후 02:49 <DIR> .
2020-11-18 오후 02:49 <DIR> ..
2020-11-18 오후 02:49 232 .classpath
2020-11-18 오후 02:49 381 .project
2020-11-18 오후 02:50 <DIR> bin
2020-11-18 오후 02:50 <DIR> src
2개 파일 613 바이트
4개 디렉터리 15,877,431,296 바이트 남음
C:\Users\user\Desktop\Java\MyApp>cd bin
C:\Users\user\Desktop\Java\MyApp\bin>dir
C 드라이브의 볼륨에는 이름이 없습니다.
볼륨 일련 번호: 008F-76B2
C:\Users\user\Desktop\Java\MyApp\bin 디렉터리
2020-11-18 오후 02:50 <DIR> .
2020-11-18 오후 02:50 <DIR> ..
2020-11-18 오후 03:58 1,384 AccountingApp.class
1개 파일 1,384 바이트
2개 디렉터리 15,876,796,416 바이트 남음
C:\Users\user\Desktop\Java\MyApp\bin>java AccountingApp
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at AccountingApp.main(AccountingApp.java:6)
C:\Users\user\Desktop\Java\MyApp\bin>java AccountingApp 333330.2
Value of supply :333330.2
VAT :33333.020000000004
Total :366663.22000000003
Expense :99999.06
Income :233331.14
Dividend1 :116665.57
Dividend2 :69999.342
Dividend3 :46666.228
C:\Users\user\Desktop\Java\MyApp\bin>
직접 디렉토리 주소값을 찾아서 그 안에 있는 class 파일에 입력값을 주고 실행시키면 된다.
하지만 이 역시 조금 뭔가 싶긴하다.
아예 웹페이지라도 있어서 거기다가 값을 입력하면 눈에보이는 계산값이 나오도록 하고 싶다.
이걸 할려면 html과 js가 필요할거다...
java 수업이 다 끝난다면 그걸 좀 익혀야겠다.
'Java > Java1' 카테고리의 다른 글
Method (0) | 2020.11.21 |
---|---|
조건문, 배열, 반복문 (0) | 2020.11.19 |
MyApp 만들기 - 1 (0) | 2020.11.18 |
Java 문서 보는 법 (0) | 2020.11.18 |
arguments & parameter (0) | 2020.11.16 |