java - 输入“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”时它会停止程序而不会出现错误?
解决方案
你应该使用:
...
String input = kbReader.readLine().trim();
if( input.equals("Q")){
//quit
System.exit(0);
}
// otherwise continue converting
Double number = Double.parseDouble(input);
...
通过这种方式,您接受了一个更通用的字符串类型的输入,您可以将其用于两个目的:在Q
输入的情况下离开程序;在输入数字的情况下继续转换。
推荐阅读
- sql - ORA-01858: 在需要数字的地方发现了一个非数字字符(时间戳、解码)
- ionic-framework - hw 在网格视图中调整图像离子框架的大小
- node.js - 在 NodeJS 中过滤 GET 请求
- json - 如何通过保留前两位小数来截断 PostgreSQL 中的双精度值?
- javascript - 在 React 中访问嵌套的 Firestore 数据?
- postgresql - Postgresql - 创建物化视图
- .net-core - 无法写入 AOF
- python-3.x - JSONDecodeError:期望值:翻译文本时的第 1 行第 1 列(字符 0)
- python - 将每个 x 和 y 分开的点数据集转换为点列表
- selenium - 如何使用 Selenium/TestNG/Maven 运行单个测试用例(方法)而不是整个测试套件(类)