Java 如果某个案例为真,我如何告诉我的程序忽略某条指令?

Java 如果某个案例为真,我如何告诉我的程序忽略某条指令?,java,swing,Java,Swing,我是一个非常初级的java编码器,我正在使用swing编写一个简单的计算器,我想在操作符中实现平方根。我希望它是这样的,在运算符是平方根的情况下,计算器不会要求第二个数字 package swingcalculator; import javax.swing.JOptionPane; public class SwingCalculator { public static void main(String[] args) { double

我是一个非常初级的java编码器,我正在使用swing编写一个简单的计算器,我想在操作符中实现平方根。我希望它是这样的,在运算符是平方根的情况下,计算器不会要求第二个数字

package swingcalculator;

import javax.swing.JOptionPane;

public class SwingCalculator {
    
    public static void main(String[] args) {
        
        double num1, num2, answer;
        String operator;
        
        num1 = Integer.parseInt(JOptionPane.showInputDialog("Enter your first number:"));
        operator = JOptionPane.showInputDialog("Enter your operator (+ , - , * , /, ^, sqrt):"); 
        num2 = Integer.parseInt(JOptionPane.showInputDialog("Enter your second number number:"));
        
        switch(operator) {
            
            case "+":
                answer = num1 + num2;
                break;
                
            case "-":
                answer = num1 - num2;
                break;
            
            case "*":
                answer = num1 * num2;
                break;
                
            case "/":
                answer = num1 / num2;
                break;
                
            case "sqrt":
                answer = Math.sqrt(num1);
                break;
                
            case "^":
                answer = Math.pow(num1, num2);
                break;
                
            default:
                System.out.println("You have entered an invalid operator");
                return;
                
        }
        
        if (Boolean.parseBoolean(operator) == Boolean.parseBoolean("sqrt")){
            JOptionPane.showMessageDialog(null, "Square root of " + num1 + " = " + answer);
        }
        else{
        JOptionPane.showMessageDialog(null, num1 + " " + operator + " " + num2 + " = " + answer);
        }
    }
任何帮助都将不胜感激

operator = JOptionPane.showInputDialog("Enter your operator (+ , - , * , /, ^, sqrt):"); 
if(!operator.equals("sqrt"){
     num2 = Integer.parseInt(JOptionPane.showInputDialog("Enter your second number number:"));
}      

仅当运算符不是“sqrt”时,才读取第二个数字,但是您的程序似乎有许多异常,正如其他人在评论中向您建议的那样

将所有内容放在条件中的
运算符=
行之后(您还可以将
JOptionPane.showMessageDialog
行移动到条件语句的相应块中,因为您不需要再次检查
运算符
):


您希望
Boolean.parseBoolean(“sqrt”)
返回什么?为什么?我怀疑您的意思是
if(operator.equals(“sqrt”))
而不是使用
Boolean.parse
。我会改为这样做,谢谢。你知道在那种情况下如何跳过要求第二个数字的程序吗?我想你需要的是修改if条件。你可以编写if(operator.equalsIgnoreCase(“sqrt”))谢谢你的帮助!
operator = JOptionPane.showInputDialog("Enter your operator (+ , - , * , /, ^, sqrt):"); 
if (!operator.equals("sqrt")) { 
  num2 = Integer.parseInt(JOptionPane.showInputDialog("Enter your second number number:"));

  switch (...) { ... }

  JOptionPane.showMessageDialog(null, num1 + " " + operator + " " + num2 + " = " + answer);
} else {
  JOptionPane.showMessageDialog(null, "Square root of " + num1 + " = " + answer);
}