5분도 걸리지 않은 간단한거라 답변하고 그냥 등록을 눌렀는데.. 이미 다른답이 올라와 있길래그냥 지웠다.

채택이 이뤄지기 전에 지우면 영향력에는 상관이 없는것 같고, 자웅(?)을 다툴만한 수준도 못되는 답변인지라..

그래도 시간을 들여(코딩과 검증 등등..) 만든거라.. 여기에는 올린다.



질문) 자바 while 구문 질문


double remains = sum;
double payment;
while(remains>0) {
System.out.print("\n$" + remains + "0 remains to be paid. Enter coin or note: ");
payment = keyboard.nextDouble();
remains = sum - payment;
}

안녕하세요. 자바 초보입니다

payment 값으로 어떤 수 를 넣으면 

빼기가 되는데 그 값이 저장이 안되고 처음으로 돌아가요.

예)

sum = remains = 20

payment 로 10 을 입력했을 때 -> remains 가 10 이 남고

println 에선 제대로 remains 에 10이 들어가는데

또 다시 payment 값 (5) 를 입력하면 10-5 인 5가 나오는 게 아니라

20-5 의 값인 15가 나와요.

어떻게 하면 고칠 수 있을까요?




내 답변)


질문자님의 방식으로 화면 ramains 에 sum 의 초기값이 계속해서 들어가게 됩니다.

그래서 while 문 안에서 처리된 값으로 바뀌지 않고,  sum 에 의해 remains 가 계속 초기화 됩니다.


소스를 아래의 빨간부분과 같이 고쳐보세요~



1. CLASS


import java.util.Scanner;


public class test {
  public static void main(String[] args) {
  
    Scanner keyboard = new Scanner(System.in);
  
    // double sum = 20;
    double remains = 20;
    double payment;


    while(remains>0) {
      System.out.print("\n$" + remains + "0 remains to be paid. Enter coin or note: ");
      payment = keyboard.nextDouble();

      remains -= payment;

    }
  }
}



2. RUN


$20.00 remains to be paid. Enter coin or note: 10


$10.00 remains to be paid. Enter coin or note: 5


$5.00 remains to be paid. Enter coin or note: 5



도움이 되셨기를..