java - 求新数字的基本计算器方法

标签 java swing calculator

因此,我正在使用 java 为类创建一个基本计算器,它将要求用户输入 2 个数字,然后询问他们想要哪种计算。它有效,但不是我想要的,我没有耐心试图找出这些方法。顺便开始学习它们。

好吧,我需要保留的是我想告诉用户除以 0 的数学不好,他需要更改他的数字。但是如果他输入0作为其中一个数字,我该如何得到返回的提示呢?

例如,这是我的除法代码片段:

public static float divide(float num1, float num2){

 if ((num1 == 0) || (num2 == 0)){
     JOptionPane.showMessageDialog(null, "numbers cannot be divisible by 0");
//I would like to give the user an option here to change his numbers to something else.
 return 0;}
 else
 return num1 / num2;

请帮忙。

package assignment4_main;

import javax.swing.JOptionPane;

public class Assignment4_Main {

    public static void main(String[] args) {

    float result;

    float num1 = Float.parseFloat(JOptionPane.showInputDialog(null, "Enter first number: ", "Calculator" , JOptionPane.QUESTION_MESSAGE));
    float num2 = Float.parseFloat(JOptionPane.showInputDialog(null, "Enter second number: ", "Calculator", JOptionPane.QUESTION_MESSAGE));
    int userInput = Integer.parseInt(JOptionPane.showInputDialog(null, "What would you like to do with these numbers?\n" + "1- Add 2- Subtract 3- Multiply 4- Divide 5- Quit", "Calculator", JOptionPane.QUESTION_MESSAGE));

            switch(userInput){

                case 1: 
                {result = add(num1, num2);
                JOptionPane.showMessageDialog(null, "Addition = " + result);
                break;}

                case 2:
                {result = subtract(num1, num2);
                JOptionPane.showMessageDialog(null, "Subtraction = " + result);
                break;}

                case 3:
                {result = multiply(num1, num2);
                JOptionPane.showMessageDialog(null, "Multiplication = " + result);
                break;}

                case 4:
                {result = divide(num1, num2);
                JOptionPane.showMessageDialog(null, "Division = " + result);
                break;}

                case 5:
                break;
            }

    }

    public static float add(float num1, float num2){

                return num1 + num2;
    }

    public static float subtract(float num1, float num2){

                return num1 - num2;
    }

    public static float multiply(float num1, float num2){

                return num1 * num2;
    }

    public static float divide(float num1, float num2){

     if ((num1 == 0) || (num2 == 0)){
         JOptionPane.showMessageDialog(null, "numbers cannot be divisible by 0");
     return 0;}
     else
     return num1 / num2;
    }
}

最佳答案

当然,还有更优雅的解决方案,但这个应该可以帮助您:

public static void main(String[] args) {
    int number;
    while (true) {
        Object[] message = {"Input some number that is not 0: "};
        String numberString = JOptionPane.showInputDialog(null, message, "Add New", JOptionPane.OK_CANCEL_OPTION);
        try {
            number = Integer.parseInt(numberString);
        } catch (NumberFormatException e) {
            continue;
        }
        if (number != 0) {
            break;
        } 
    }
    System.out.println(number);
}

关于java - 求新数字的基本计算器方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21740707/

相关文章:

java - logback 在运行时更改配置和日志文件创建问题

Java - 我可以扩展类的实例以使其成为父类实例吗?

java - 在 GroupLayout 中创建页脚

python - 我的第一个程序

java - 如何在JSP中迭代Hashtable

java - Java 中的泛型类型使用

Java Swing - 从鼠标监听器更改 JComponent 不透明度

java - 使用 XML 填充 JComboBox - 缺少一些内容

java - 创建了java计算器,我想使用答案并替换为第一个数字?

Java 改变计算器输出