Java 无法获取输入的正确输出。11
我在学校有作业,我必须显示用户输入的小于1.00但大于0的金额的正确变化。除了在第十位有1或6的两位数以外,每个数字都有效。例如.11、.16、.21、.26等 这是我的密码Java 无法获取输入的正确输出。11,java,floating-point,modulus,Java,Floating Point,Modulus,我在学校有作业,我必须显示用户输入的小于1.00但大于0的金额的正确变化。除了在第十位有1或6的两位数以外,每个数字都有效。例如.11、.16、.21、.26等 这是我的密码 import java.util.Scanner; public class AmountChange { public static void main(String[] args) { // double amt; int cents, quarter, dime,
import java.util.Scanner;
public class AmountChange
{
public static void main(String[] args)
{
//
double amt;
int cents, quarter, dime, nickle, penny;
Scanner keyboard = new Scanner(System.in);
//To get the users input
System.out.println("Change in Coins");
System.out.println("---------------");
System.out.println("Enter the amount less than $1.00, " +
"\nbut more than zero.");
System.out.print("\nEnter amount: ");
amt = keyboard.nextDouble();
//Loop for incorrect input
while ( amt < 0 || amt > 1.00 )
{
System.out.println("Please enter the amount less than $1.00,"
+ "\nbut more than zero.");
System.out.print("\nRe-enter amount: ");
amt = keyboard.nextDouble();
}
//
cents = (int)( amt * 100 + .1 );
quarter = cents/25;
cents %= 25;
dime = cents/10;
cents %= 10;
nickle = cents/5;
cents %= 5;
penny = cents;
// ----------------------------------------------------------
if (quarter > 1)
{
System.out.print("\nYou will need " + quarter + " quarters, ");
}
else if (quarter == 1)
{
System.out.print("\nYou will need " + quarter + " quarter ,");
}
else
{
System.out.print("\nYou will need no quarters, ");
}
// ----------------------------------------------------------
if (dime > 1)
{
System.out.print(dime + " dimes, ");
}
else if (dime == 1)
{
System.out.print(dime + " dime, ");
}
else
{
System.out.print("no dimes, ");
}
// ----------------------------------------------------------
if (nickle > 1)
{
System.out.print(nickle + " nickles, ");
}
else if (nickle == 1)
{
System.out.print(nickle + " nickle, ");
}
else
{
System.out.print("no nickles, ");
}
// ----------------------------------------------------------
if (penny > 1)
{
System.out.print("and " + penny + " pennies.");
}
else if (quarter == 1)
{
System.out.print("and " + penny + " penny.");
}
else
{
System.out.print("and no pennies.");
}
}
}
import java.util.Scanner;
公共类数量变化
{
公共静态void main(字符串[]args)
{
//
双金额;
一分、二角五分、一角、五分、一便士;
扫描仪键盘=新扫描仪(System.in);
//获取用户的输入
System.out.println(“硬币兑换”);
System.out.println(“--------------”;
System.out.println(“输入少于$1.00的金额,”+
“\n但大于零。”);
系统输出打印(“\n输入金额:”);
amt=键盘.nextDouble();
//不正确输入的循环
而(金额<0 | |金额>1.00)
{
System.out.println(“请输入少于$1.00的金额,”
+“\n但大于零。”);
系统输出打印(“\n重新输入金额:”);
amt=键盘.nextDouble();
}
//
美分=(整数)(金额*100+1);
季度=美分/25;
美分%=25;
一角硬币=美分/10;
美分%=10;
镍币=美分/5;
美分%=5;
便士=美分;
// ----------------------------------------------------------
如果(季度>1)
{
System.out.print(“\n您将需要“+季度+”季度“);
}
否则如果(季度==1)
{
System.out.print(“\n您需要“+quarter+”quarter“);
}
其他的
{
System.out.print(“\n您不需要硬币,”);
}
// ----------------------------------------------------------
如果(dime>1)
{
系统输出打印(一角+一角);
}
否则如果(dime==1)
{
系统输出打印(dime+“dime”);
}
其他的
{
系统输出打印(“无一角硬币”);
}
// ----------------------------------------------------------
如果(镍>1)
{
系统输出打印(镍币+镍币);
}
否则如果(镍币=1)
{
系统输出打印(nickle+“nickle”);
}
其他的
{
系统输出打印(“无刻痕”);
}
// ----------------------------------------------------------
如果(便士>1)
{
系统输出打印(“和“+便士+”便士“);
}
否则如果(季度==1)
{
系统输出打印(“和“+便士+”便士“);
}
其他的
{
系统输出打印(“并且没有硬币”);
}
}
}
啊,剪贴的乐趣:-)
使用函数来输出提示并接受输入使得用户输入代码更易于维护,因为您只需要在一个地方更改交互
真正的节省是mkTxt()
函数,它可以为您提供一个字符串,该字符串可以自动神奇地根据硬币数量进行调整。它去掉了main()
中大量的if/then/else
块,在一定程度上提高了可读性
如果你发现自己做了很多次类似的事情,但却有不同的价值观,那就需要将其转换为某种描述的函数或循环。啊,剪切和粘贴的乐趣:-) 使用函数来输出提示并接受输入使得用户输入代码更易于维护,因为您只需要在一个地方更改交互 真正的节省是
mkTxt()
函数,它可以为您提供一个字符串,该字符串可以自动神奇地根据硬币数量进行调整。它去掉了main()
中大量的if/then/else
块,在一定程度上提高了可读性
如果你发现自己做了很多次类似的事情,但却有不同的价值观,那就需要将其转换为某种描述的函数或循环。啊,剪切和粘贴的乐趣:-) 使用函数来输出提示并接受输入使得用户输入代码更易于维护,因为您只需要在一个地方更改交互 真正的节省是
mkTxt()
函数,它可以为您提供一个字符串,该字符串可以自动神奇地根据硬币数量进行调整。它去掉了main()
中大量的if/then/else
块,在一定程度上提高了可读性
如果你发现自己做了很多次类似的事情,但却有不同的价值观,那就需要将其转换为某种描述的函数或循环。啊,剪切和粘贴的乐趣:-) 使用函数来输出提示并接受输入使得用户输入代码更易于维护,因为您只需要在一个地方更改交互 真正的节省是
mkTxt()
函数,它可以为您提供一个字符串,该字符串可以自动神奇地根据硬币数量进行调整。它去掉了main()
中大量的if/then/else
块,在一定程度上提高了可读性
如果你发现自己做了很多次类似的事情,但却有不同的值,那就需要将其转换为某种描述的函数或循环。你只需要输入一个简单的错误! 更改: 对,
你只是有一个简单的打字错误! 更改: 对,
你只是有一个简单的打字错误! 更改: 对,
你只是有一个简单的打字错误! 更改: 对,
if (penny > 1)
{
System.out.print("and " + penny + " pennies.");
}
else if (quarter == 1) // <<<<< LOOK HERE !!!
{
System.out.print("and " + penny + " penny.");
}
else
{
System.out.print("and no pennies.");
}
import java.util.Scanner;
public class Test
{
static double getAmount(Scanner keyboard) {
System.out.println("Enter the amount between zero and $1.00.");
System.out.print("\nEnter amount: ");
return keyboard.nextDouble();
}
static String mkeTxt (int val, String prefix, String singular, String plural) {
if (val == 0)
return prefix + "no " + plural;
if (val == 1)
return prefix + "1 " + singular;
return prefix + val + " " + plural;
}
public static void main(String[] args)
{
double amt;
int cents, quarter, dime, nickle, penny;
Scanner keyboard = new Scanner(System.in);
System.out.println("Change in Coins");
System.out.println("---------------");
amt = getAmount(keyboard);
while ( amt < 0 || amt > 1.00 )
amt = getAmount(keyboard);
cents = (int)( amt * 100 + .1 );
quarter = cents/25;
cents %= 25;
dime = cents/10;
cents %= 10;
nickle = cents/5;
cents %= 5;
penny = cents;
System.out.print("\nYou will need ");
System.out.print(mkeTxt(quarter,"", "quarter", "quarters"));
System.out.print(mkeTxt(dime,", ", "dime", "dimes"));
System.out.print(mkeTxt(nickle,", ", "nickle", "nickles"));
System.out.print(mkeTxt(penny," and ", "penny", "pennies"));
System.out.println(".");
}
}
else if (quarter == 1){
System.out.print("and " + penny + " penny.");
} else {
System.out.print("and no pennies.");
}
else if (penny == 1){
System.out.print("and " + penny + " penny.");
} else {
System.out.print("and no pennies.");
}