首页 > 解决方案 > 输入“Q”时如何使Java程序退出,问题是默认输入变量是double

问题描述

输入“Q”时如何退出程序?我目前正在学校编写一个从美元到欧元的货币转换器,并且已经被困在这部分很久了。问题是我所有的键盘输入变量都是双精度类型的,每当输入“Q”或类似的东西时都会导致错误。到目前为止,我的课程是这样的。

import java.io.*;

public class CurrencyConverter 
{

    double exchRate;
    double euro;

    public CurrencyConverter(double exchRate){
        this.exchRate = exchRate;
    }

    public double USDToEuro(double usd) {
        double euro = 0;
        euro = usd * exchRate;
        return euro;
    }
}

import java.io.*;
import java.util.*;

public class Converter
{
public static void main(String args[])
{
    Scanner kbReader = new Scanner(System.in);

    System.out.println("Please enter the value of USD in Euros.");
    double exchRate = kbReader.nextDouble();
    CurrencyConverter ER = new CurrencyConverter(exchRate);
    do
    {
        System.out.println("Please enter a value of USD to be converted.");
        double usd = kbReader.nextDouble();
        System.out.println("Your converted value is € " + ER.USDToEuro(usd)+ ".");
    }
    while(1 == 1);
}
}

转换器本身工作正常,但同样,我坚持的部分正在制作它,所以当输入“Q”时,它会停止程序。我将如何做到这一点,当输入“Q”时它会停止程序而不会出现错误?

标签: java

解决方案


你应该使用:

...
String input = kbReader.readLine().trim();
if( input.equals("Q")){
   //quit
   System.exit(0);
}
// otherwise continue converting
Double number = Double.parseDouble(input);
...

通过这种方式,您接受了一个更通用的字符串类型的输入,您可以将其用于两个目的:在Q输入的情况下离开程序;在输入数字的情况下继续转换。


推荐阅读