java - 如何在我的 java 计算器程序中获得用户输入验证?
问题描述
所以,我最近用java做了一个计算器作为家庭作业,我已经掌握了所有我能做到的方法,一直到发球台。我已经完成了if
语句和switch
语句,以允许用户根据他们使用的运算符获得不同的答案(/, *, +, -)
,但是,我不太完全理解for
,do
并且do-while
循环尚未将其集成到我的程序中。
这是我的计算器的源代码。如您所见,如果它不是运算符,则 switch 语句会打印“无效”,但是,我不希望用户必须重新运行整个应用程序,我希望它循环(不仅针对运算符,还针对数字也是如此)
import java.util.Scanner;
public class JCal
{
public static void main (String[] args)
{
Scanner input = new Scanner(System.in);
double num1, num2, divided, multiplied, added, subtracted;
char operator;
System.out.print("Value A: ");
num1 = input.nextDouble();
System.out.print("Operator (/, *, +, -): ");
operator = input.next().charAt(0);
System.out.print("Value B: ");
num2 = input.nextDouble();
divided = num1 / num2;
multiplied = num1 * num2;
added = num1 + num2;
subtracted = num1 - num2;
switch (operator)
{
case '/':
{
System.out.println("Result: " + divided);
break;
}
case '*':
{
System.out.println("Result: " + multiplied);
break;
}
case '+':
{
System.out.println("Result: " + added);
break;
}
case '-':
{
System.out.println("Result: " + subtracted);
break;
}
default:
{
System.out.println("Invalid operator!");
break;
}
}
}
}
我试过类似的东西:
double num1;
Scanner input = new Scanner(System.in);
do
{
System.out.println("Value A: ");
while (! input.hasNextDouble());
{
System.out.println("Invalid number!");
input.nextDouble();
}
} while (num1 = input.hasNextDouble());
根据 IntelliJ的说法,这就是我被卡住的地方,while (num1 = input.hasNextDouble());
is aboolean
和 a发生冲突(我假设因为 num1 是 a并且函数给出 a ,它们不会一起出现。)所以 IntelliJ 用红色下划线。double
double
.hasNext
boolean
非常感谢,如果您抽出时间来帮助我解决这个可能微不足道的问题。
解决方案
也许您可以创建一个“布尔退出”变量并最初将其设置为 False
将整个代码(显然除了 main )放在一个 do while 循环中,条件是 if until exit 为真
main {
do {
... your code
}while(Exit != True)
}
因此,在每次运行结束后,您可以要求用户尝试另一个计算(是/否),如果否,将 Exit 设置为 true,您的程序将退出循环。如果是,则将 Exit 设置为 False,您的程序将再次循环。
推荐阅读
- ruby - 红宝石 - 多少天?
- powershell - 从powershell接收SSIS执行结果
- reactjs - 从 Array 中按键删除一个元素
- java - 如何覆盖任何 HttpHeader 以响应 WebClient?
- sql - 如何从数据库中提取上个月的动态表
- javascript - React Native 版本不匹配。JS V:0.49.3 RN V:0.59.9
- user-interface - 空手道 UI 自动化支持
- excel - 如何使用 VBA 代码修剪表格中的标题
- java - 引起:org.postgresql.util.PSQLException:错误:类型“枚举”不存在
- php - Laravel 5.5 模型绑定 API 不起作用