$1.00 未満でゼロより大きいおつりを取り、そのおつりに必要な 4 分の 1、1 セント硬貨、5 セント硬貨、1 セント硬貨の数を表示しようとしています。出力は、次の文法規則に従って、英語に似た説明的な方法で提示する必要があります。
金額がゼロの場合は、「いいえ」という言葉を使用する必要があります。量が 1 の場合、単位は単数でなければなりません。金額が 1 でない場合、単位は複数でなければなりません。
また、プログラムは、0 未満または 1 を超えるものを入力したときにユーザーの間違いを検出し、データ検証ループに入ってプロンプトを表示し、ユーザーに金額の再入力を求める必要があります。このループは、ユーザーが $1.00 未満でゼロより大きい金額を入力するまで続きます。
コードを実行すると、繰り返し4が返されました。
御時間ありがとうございます!どんな助けでも大歓迎です!
これまでの私のコード:
import java.util.Scanner;
public class CoinChange
{
public static void main(String[] args)
{
double amt;
int cents, quarter, dime, nickle, penny;
Scanner keyboard = new Scanner(System.in);
System.out.print("Change in Coins\n" +
"----------------\n\n");
System.out.println("Enter the amount less than $1.00, but\n" +
"more than zero.");
System.out.print("\nEnter amount: ");
amt = keyboard.nextInt();
// ----------------------------------------------
cents = (int)(amt*100 + .1);
quarter = cents/25;
cents %= 25;
dime = cents/10;
cents %= 10;
nickle = cents/5;
cents %= 5;
penny = cents;
// -----------------------------------------
while(amt > 0 && amt <= 1)
{
// -----------------------------------------
if(quarter == 0)
{
System.out.print("no ");
}
else
System.out.print(quarter);
}
if(quarter == 1)
{
System.out.print("quarter");
}
else
{
System.out.print("quarters");
}
}
}