java - Java 中的哨兵值

标签 java loops infinite sentinel

我刚刚开始使用 java,对于我的介绍类,必须创建哨兵值为 0 的循环,以将输入的美元转换为英镑。有一些运行时错误,看来我是在无限循环中创建的。有人可以帮忙吗?提前致谢!

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!");
            }
        }
        }
    }

最佳答案

你的while循环是错误的。

while (value != 0);

这意味着当值不为零时进行迭代。在这种情况下,它始终不为零。

你应该这样做:

while (value != 0) 
{ 
    // Change value as you like
}

关于java - Java 中的哨兵值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40064081/

相关文章:

python - 高效循环 numpy 数组

c - 为什么for循环会变成无限循环?

c - 为什么这段C代码会陷入无限循环?

java - 这个查询有什么问题,为什么它给我以下错误?

java - Java Web Start 和 Safari 的问题

java - 使用 java 循环运行 MySQL

python - 按指定顺序打印包含逗号分隔值的 .csv 文件

java - 如何从 Unity Android 插件调用非静态方法?

java - hibernate列名问题

css - 无限循环之前和之后的动画延迟 CSS3