학원 들어가기 전(사실 아직 학원도 안 정했지만...)
여러가지 코드를 쳐보면 좋다는 얘길 듣고
아는 오빠한테 "자바의 정석, 기초" 책을 받아서 쳐보고
생활코딩 유튜브도 소개받아서 열심히 보고 있다
자바의 정석은 이해하면서 공부해보려고 했으나
"어차피 이해 못 해! 일단 그냥 쳐!" 라는 말에
생각없이 코드를 치고 있다
뭐 어쨌든,
생활코딩에서 앱 만들기 강의가 있어서 코드를 쳐보고 있었다
내용은 대충~~~
판매 수익에 부가세를 더하고 동업자들끼리 나누고 하는 일을
앱으로 개발해서 써보는 거였다
코드는 이거
public class AcountingApp {
public static void main(String[] args) {
double valueOfSupply = Double.parseDouble(args[0]);
double vatelate = 0.1;
double expenseRate = 0.3;
double vat = valueOfSupply*vatelate;
double total = valueOfSupply + vat;
double expense = valueOfSupply*expenseRate;
double income = valueOfSupply-valueOfSupply*expenseRate;
double devidend1 = income*0.5;
double devidend2 = income*0.3;
double devidend3 = 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 : "+devidend1);
System.out.println("Dividend 2 : "+devidend2);
System.out.println("Dividend 3 : "+devidend3);
}
}
그런데 여기서 한 가지 떠오른 게
double valueOfSupply = Double.parseDouble(args[0]);
이 판매 수익을 앱 사용자가 직접 입력해서 계산할 수 있으면
더 편리하지 않을까? 하는 생각이 들었다
자바의 정석 책에서 Scanner 라는 코드를 사용할 때
사용자가 값을 입력할 수 있었던 게 떠올랐음
그래서 자바의 정석 책을 뒤져보고 스캐너로 사용자가 값을 입력할 수 있게 만들어봄
하지만...
<오류>
import java.util.Scanner;
public class AcountingApp2 {
public static void main(String[] args) {
Scanner valueOfSupply = new Scanner(System.in);
//double valueOfSupply = Double.parseDouble(args[0]);
System.out.print("판매값을 입력하세요 (예:10000.0) ->")
double vatelate = 0.1;
double expenseRate = 0.3;
double vat = valueOfSupply*vatelate;
double total = valueOfSupply + vat;
double expense = valueOfSupply*expenseRate;
double income = valueOfSupply-valueOfSupply*expenseRate;
double devidend1 = income*0.5;
double devidend2 = income*0.3;
double devidend3 = 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 : "+devidend1);
System.out.println("Dividend 2 : "+devidend2);
System.out.println("Dividend 3 : "+devidend3);
}
}
코드는 오류가 뜨게 된다...
너무 단순하게 생각해서 그런 거 같다
입력값을 받는 코드도 안 썼구..근데 어떻게 쓰는지도 모르겠구..
일단 오류가 떴으니 내가 쓴 코드 자체가 안 맞는 거겠지??
그래서 Scanner로 입력값을 Double로 받는 법을 구글에 찾아보았다
스캐너로 변수를 지정하고
더블로 입력받을 값을 또 변수로 지정한다음
더블변수 = 스캐너변수.nextDouble(); 명령어를 사용하면 되는 거였다!
(next 뒤에는 byte, short, int 등 여러 데이터 타입을 적을 수 있었다)
Thanks Google!
그 결과!!!
import java.util.Scanner;
public class AcountingApp2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double valueOfSupply;
System.out.print("판매값을 입력하세요 (예:10000.0) ->");
valueOfSupply = input.nextDouble();
double Panmae = ' ';
double vatelate = 0.1;
double expenseRate = 0.3;
double vat = valueOfSupply*vatelate;
double total = valueOfSupply + vat;
double expense = valueOfSupply*expenseRate;
double income = valueOfSupply-valueOfSupply*expenseRate;
double devidend1 = income*0.5;
double devidend2 = income*0.3;
double devidend3 = 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 : "+devidend1);
System.out.println("Dividend 2 : "+devidend2);
System.out.println("Dividend 3 : "+devidend3);
}
}
성공!!ㅎㅎ
이런 게 코딩의 맛이구만...ㅎㅎㅎ
여러가지 코드를 쳐보다보니
이런 방법도 있군! 머릿속에 저장하고
그걸 꺼내서 쓰는(구글에서 꺼내긴 했지만) 맛이
달콤하구만 ㅎ_ㅎ
오빠한테 자랑했더니...
오빠의 새 주문
어려운 주문이군...하지만 도전!!!!
double을 다 int로 바꿔야하나 싶었지만
값을 출력할 때 int형으로 바꿀 수 있지 않을까??싶었음
구글아 도와조!!
import java.util.Scanner;
public class AcountingApp3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double valueOfSupply;
System.out.print("판매값을 입력하세요 (예:10000.0) ->");
valueOfSupply = input.nextDouble();
double vatelate = 0.1;
double expenseRate = 0.3;
double vat = valueOfSupply*vatelate;
double total = valueOfSupply + vat;
double expense = valueOfSupply*expenseRate;
double income = valueOfSupply-valueOfSupply*expenseRate;
double devidend1 = income*0.5;
double devidend2 = income*0.3;
double devidend3 = income*0.2;
int valueOfSupply1 = (int)valueOfSupply;
int vatelate1=(int)vatelate;
int expenseRate1=(int)expenseRate;
int vat1=(int)vat;
int total1=(int)total;
int expense1=(int)expense;
int income1=(int)income;
int devidend10=(int)devidend1;
int devidend20=(int)devidend2;
int devidend30=(int)devidend3;
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 : "+devidend1+"원");
System.out.println("Dividend 2 : "+devidend2+"원");
System.out.println("Dividend 3 : "+devidend3+"원");
}
}
일단 이건 실패 ㅠㅠ
그냥 int로 바꾸는 건 아닌가보다...뒤에 .0이 계속 붙어있다
그러면..Math.ceil 을 활용해볼까?하면서
import java.lang.Math;를 불러오고
하나하나 수정하던 중.....
띠용???아래 출력값이 수정이 안 되어있던 게 아닌가
이런 실수를 ㅠㅠ
다시 수정해보았다
import java.util.Scanner;
public class AcountingApp3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int valueOfSupply;
System.out.print("판매값을 입력하세요 (예:10000) ->");
valueOfSupply = input.nextInt();
double vatelate = 0.1;
double expenseRate = 0.3;
double vat = valueOfSupply*vatelate;
double total = valueOfSupply + vat;
double expense = valueOfSupply*expenseRate;
double income = valueOfSupply-valueOfSupply*expenseRate;
double devidend1 = income*0.5;
double devidend2 = income*0.3;
double devidend3 = income*0.2;
int vatelate1=(int)vatelate;
int expenseRate1=(int)expenseRate;
int vat1=(int)vat;
int total1=(int)total;
int expense1=(int)expense;
int income1=(int)income;
int devidend10=(int)devidend1;
int devidend20=(int)devidend2;
int devidend30=(int)devidend3;
System.out.println("Value of supply : "+valueOfSupply+"원");
System.out.println("VAT : "+vat1+"원");
System.out.println("Total : "+total1+"원");
System.out.println("Expense : "+expense1+"원");
System.out.println("Income : "+income1+"원");
System.out.println("Dividend 1 : "+devidend10+"원");
System.out.println("Dividend 2 : "+devidend20+"원");
System.out.println("Dividend 3 : "+devidend30+"원");
}
}
두구두구두구....결과는??
뿌듯뿌듯...
오빠가 잘했다고 해줬다 키키
이것이 성취감....??
근데 저렇게 하나하나 다 변수 선언 안하고도
더 쉽게 바꾸는 법이 있을 거 같긴 한데 ㅠㅠ 잘 모르겠다
오늘은 일단 여기서 마무리~~~
오늘은 자바의 정석 기초2권 코드 치다가 자야게따 ㅎㅎ
생활코딩 선생님~~~저 응용해서 잘 했져?ㅎ_ㅎ
'혼자서 개발새발' 카테고리의 다른 글
printf로 출력하는 것? (0) | 2022.09.04 |
---|---|
카페 주문 앱, 완벽하게 수정 완료 >_< (0) | 2022.09.02 |
배열(Array)에 대해서 알아보다 (0) | 2022.09.02 |
반복문으로 카페 주문 앱을 만드는데 성공하다!(while, if, else) (0) | 2022.08.31 |
설레고 무섭지만 (0) | 2022.08.30 |