2016-09-29 1 views
0

사용자가 잔액 값을 입력 할 수있는 상각 계산기를 프로그래밍하려고합니다. 소수점 형식의 이자율 값을 입력 할 수 있습니다. 월별 지불을위한 가치. 이 정보를 사용하여 달러, 원금 및 새 잔액으로이자 금액을 출력하려고합니다.Java 컴파일러에서 변수 "interest"또는 "pmt"를 시작하지 않았다는 메시지가 표시됩니다.

import java.util.Scanner; 
public class Amortization{ 
    public static void main(String []args){ 
     Scanner pmt, interest, balance = new Scanner(System.in); 
     System.out.println("What is your balance?"); 
     double b = balance.nextDouble(); 
     System.out.println("What is your interest rate in decimal?"); 
     double i = interest.nextDouble(); 
     System.out.println("What is your monthly payment?"); 
     double p = pmt.nextDouble(); 
     double pv = p-(b*i); 
     System.out.println("Your interest amount is " + (b*i)); 
     System.out.println("Your principal amount is " + pv); 
     System.out.println("Your new balance is " + (b-pv)); 
    } 
} 
+2

왜 모든 입력에 대해'System.in'에서 읽으려면 3 스캐너를 정의하려고합니까? – azurefrog

+0

하나의 스캐너를 정의한 다음 원하는 변수에 3 번 스캐너를 읽을 수 있습니다. –

답변

1

당신은 표준 입력에서 읽을 3 스캐너를 선언해서는 안 : 여기 내 코드입니다. 하나를 선포하고 독서를 계속하십시오. 이렇게 :

import java.util.Scanner; 
public class Amortization{ 
    public static void main(String []args){ 
     Scanner input = new Scanner(System.in); 
     System.out.println("What is your balance?"); 
     double b = input.nextDouble(); 
     System.out.println("What is your interest rate in decimal?"); 
     double i = input.nextDouble(); 
     System.out.println("What is your monthly payment?"); 
     double p = input.nextDouble(); 
     double pv = p-(b*i); 
     System.out.println("Your interest amount is " + (b*i)); 
     System.out.println("Your principal amount is " + pv); 
     System.out.println("Your new balance is " + (b-pv)); 
    } 
} 

요점은 스캐너가 입력 스트림에서 읽는 개체이며 읽는 값이 아니라는 점입니다. 읽을 모든 값에 대해 새 스캐너가 필요하지 않습니다.

0

@ nhouser9가 말했듯이, 세 개의 스캐너가 필요없고 질문에 대답 할 때 컴파일러는 변수가 초기화되지 않았다고 말합니다. java에서 다중 초기화는 예상 한대로 작동하지 않습니다 (동일한 값으로 모든 변수를 초기화하십시오).

관련 문제