首页 > 解决方案 > 如何在我的 java 计算器程序中获得用户输入验证?

问题描述

所以,我最近用java做了一个计算器作为家庭作业,我已经掌握了所有我能做到的方法,一直到发球台。我已经完成了if语句和switch语句,以允许用户根据他们使用的运算符获得不同的答案(/, *, +, -),但是,我不太完全理解fordo并且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 用红色下划线。doubledouble.hasNextboolean

非常感谢,如果您抽出时间来帮助我解决这个可能微不足道的问题。

标签: javavalidationintellij-idea

解决方案


也许您可以创建一个“布尔退出”变量并最初将其设置为 False

将整个代码(显然除了 main )放在一个 do while 循环中,条件是 if until exit 为真

main {
   do {
      ... your code
   }while(Exit != True)
}

因此,在每次运行结束后,您可以要求用户尝试另一个计算(是/否),如果,将 Exit 设置为 true,您的程序将退出循环。如果,则将 Exit 设置为 False,您的程序将再次循环。


推荐阅读