본문 바로가기

Java/Java1

MyApp 만들기 - 2

728x90
반응형

만들기 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 수업이 다 끝난다면 그걸 좀 익혀야겠다. 

 

 

728x90
반응형

'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