我尝试创建一个随机生成1到10,000之间的数字的程序,然后将此数字除以100,以创建另一个用户应该输入更改的数字。 (67.48将是20个' s,1' s,宿舍等等的数量)...如果用户在他们的答案中输入了错误的数字,该程序应该是显示他们的答案和随机数之间的差异。词汇表中没有任何关于差异或找到它们的内容......而且我从来没有做过像我们目前正在失去的那样广泛的do-while循环。我需要一些帮助才能找到我做错的事情。
// ---------1---------2---------3---------4---------5---------6---------7
// 1234567890123456789012345678901234567890123456789012345678901234567890
import java.util.Scanner;
import java.util.Random;
public class ChangeGame
{
public static void main(String[] args)
{
int low = 1;
int max = 10000;
int twentyDollars = 0;
int tenDollars = 0;
int fiveDollars = 0;
int oneDollar = 0;
int quarters = 0;
int dimes = 0;
int nickels = 0;
int pennies = 0;
Random random = new Random();
int randomNumber = random.nextInt(max - low + 1);
double randomNumber1 = (randomNumber /100.0);
Scanner keyboard = new Scanner(System.in);
do
{
System.out.println("Enter the change for " + randomNumber1);
System.out.println("Twenties: ");
twentyDollars = keyboard.nextInt();
while( twentyDollars < 0 );
{
System.out.println( "** Invalid Amount **\n" +
"Twenties: " );
twentyDollars = keyboard.nextInt();
}
System.out.println("Enter the change for " + randomNumber1);
System.out.println("Tens: ");
tenDollars = keyboard.nextInt();
while( tenDollars <= 1 )
{
System.out.println( "** Invalid Amount **\n" +
"Tens: " );
tenDollars = keyboard.nextInt();
}
System.out.println("Enter the change for " + randomNumber1);
System.out.println("Fives: ");
fiveDollars = keyboard.nextInt();
while( fiveDollars <= 1 )
{
System.out.println( "** Invalid Amount **\n" +
"Fives: " );
fiveDollars = keyboard.nextInt();
}
System.out.println("Enter the change for " + randomNumber1);
System.out.println("Ones: ");
oneDollar = keyboard.nextInt();
while( oneDollar <= 4 )
{
System.out.println( "** Invalid Amount **\n" +
"Ones: " );
oneDollar = keyboard.nextInt();
}
System.out.println("Enter the change for " + randomNumber1);
System.out.println("Quarters: ");
quarters = keyboard.nextInt();
while( quarters <= 3 )
{
System.out.println( "** Invalid Amount **\n" +
"Quarters: " );
quarters = keyboard.nextInt();
}
System.out.println("Enter the change for " + randomNumber1);
System.out.println("Dimes: ");
dimes = keyboard.nextInt();
while( dimes <= 2 )
{
System.out.println( "** Invalid Amount **\n" +
"Dimes: " );
dimes = keyboard.nextInt();
}
System.out.println("Enter the change for " + randomNumber1);
System.out.println("Nickels: ");
nickels = keyboard.nextInt();
while( nickels <= 1 )
{
System.out.println( "** Invalid Amount **\n" +
"Nickels: " );
nickels = keyboard.nextInt();
}
System.out.println("Enter the change for " + randomNumber1);
System.out.println("Pennies: ");
pennies = keyboard.nextInt();
while( pennies <= 4 )
{
System.out.println( "** Invalid Amount **\n" +
"Pennies: " );
pennies = keyboard.nextInt();
}
while( difference != 0);
{
System.out.println("Incorrect by: ");
}
}
}
答案 0 :(得分:1)
这是一个错误(不确定它是否是唯一错误):
更改
while( twentyDollars < 0 );
^
{
System.out.println( "** Invalid Amount **\n" +
"Twenties: " );
twentyDollars = keyboard.nextInt();
}
到
while( twentyDollars < 0 )
{
System.out.println( "** Invalid Amount **\n" +
"Twenties: " );
twentyDollars = keyboard.nextInt();
}
while( twentyDollars < 0 );
可能是无限循环(如果最初为twentyDollars < 0
)。
编辑:
这里有另一个错误:
while( difference != 0);
{
System.out.println("Incorrect by: ");
}
看起来这个while
意味着结束do-while循环。如果是这种情况,那么您错过了}
:
}
while (difference != 0);
并不清楚以下内容
{
System.out.println("Incorrect by: ");
}
打算这样做。它与之前的while语句无关。