2014-02-12 33 views
0

所以我創建了一個基本的計算器的類使用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; 
    } 
} 
+2

搜索DO /時的結構。 –

+2

你應該改變你的if語句來檢查'num2 == 0'。分子中有0應該被允許。 – LeonardBlunderbuss

+0

關於分子的好處,我已經做出了改變,謝謝。 – mxgenius

回答

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