要求新号码的基本计算器方法

时间:2014-02-12 22:01:04

标签: 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;
    }
}

1 个答案:

答案 0 :(得分:1)

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

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);
}