我刚刚开始使用java,而我的intro类必须创建一个endinel值为0的循环,以将输入的USD转换为GBP。有一些运行时错误,它似乎是我在无限循环中创建的。有人可以帮忙吗?提前谢谢!
import java.util.Scanner;
/**
* Prompts user for today's conversion of USD to GBP
* Then prompts user for USD value, which will inform user of GBP
* Prompting loop for other USD values, util sentinel value of (0) is encountered
* hint: while loop shouldnt include prompt for exchange rate. When user enteres 0, program will print terminating "goodbye" message and end
*/
public class AP6_DollarToPound
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
double amount = 0;
int rate = in.nextInt();
int value = in.nextInt();
System.out.println("Enter today's US Dollar to British Pound Sterling exchange rate: ");
System.out.println("Enter a value in US Dollars: ");
while (value != 0);
{
value = in.nextInt();
if (value != 0)
{
amount = rate * value;
System.out.println("Value in GBP is: " + value);
}
else
{
System.out.println("Goodbye!");
}
}
}
}
答案 0 :(得分:1)
你的循环是错误的。
while (value != 0);
这意味着迭代,而值不为零。在这种情况下,它始终不为零。
你应该这样做:
while (value != 0)
{
// Change value as you like
}
答案 1 :(得分:1)
答案 2 :(得分:0)
你的订单有些混乱。
如果您想显示用户应输入的内容的说明,则必须在致电System.out.println()
之前致电Scanner.nextInt()
。
在你的情况下,它会显示一个空白屏幕,等到用户输入由空格或换行符分隔的两个数字,然后显示你的两行。然后,只有当用户输入的第二个数字不为零时,它才会继续,在这种情况下,它会等待他输入另一个数字。如果该数字为零,则循环继续更多的输入请求,直到最后一个不为零。只有这样才会输出你的结果。
您可能还想检查输入是否实际上是一个数字,而不仅仅是任何字符串。这可以通过检查Scanner.hasNextInt()
。
答案 3 :(得分:0)
您必须将数量初始化为1而不是0 双倍金额= 1; 因为在多重运算中1对操作没有影响