03 一个计算器,switch语句

本教程详细介绍了如何在NetBeans中创建一个包含1个文本框和18个操作按钮的JFrame实例。通过编写特定的Java代码,实现了数字输入、运算符选择及计算结果显示的功能。

在NetBeans中创建一个项目,不要主类,新建一个JFrame,添加一个jTextFiled,18个jButton,如下图:


添加下面这些代码:

double temp;
    double result;//存储结果
    String s = "";//存储显示在屏幕上的值
    String s1 = "";//存储参与计算的值
    byte flag = 0;/*flag=0表示没有选择运算符,1表示加号,2表示减号,
     3表示乘号,4表示除号,5表示取余*/

private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {                                       
        flag = 1;
        s1 = jTextField1.getText();
        try {
            temp = Double.parseDouble(s1);
            result = temp;
        } catch (NumberFormatException e) {
            jTextField1.setText("还没有输入数字");
        }
        jTextField1.setText("+");
        s = "";
    }                                      
    
    private void jButton2MouseReleased(java.awt.event.MouseEvent evt) {                                       
        flag = 2;
        s1 = jTextField1.getText();
        try {
            temp = Double.parseDouble(s1);
            result = temp;
        } catch (NumberFormatException e) {
            jTextField1.setText("还没有输入数字");
        }
        jTextField1.setText("-");
        s = "";
    }                                      
    
    private void jButton3MouseReleased(java.awt.event.MouseEvent evt) {                                       
        flag = 3;
        s1 = jTextField1.getText();
        try {
            temp = Double.parseDouble(s1);
            result = temp;
        } catch (NumberFormatException e) {
            jTextField1.setText("还没有输入数字");
        }
        jTextField1.setText("*");
        s = "";
    }                                      
    
    private void jButton4MouseReleased(java.awt.event.MouseEvent evt) {                                       
        flag = 4;
        s1 = jTextField1.getText();
        try {
            temp = Double.parseDouble(s1);
            result = temp;
        } catch (NumberFormatException e) {
            jTextField1.setText("还没有输入数字");
        }
        jTextField1.setText("/");
        s = "";
    }                                      
    
    private void jButton5MouseReleased(java.awt.event.MouseEvent evt) {                                       
        flag = 5;
        s1 = jTextField1.getText();
        try {
            temp = Double.parseDouble(s1);
            result = temp;
        } catch (NumberFormatException e) {
            jTextField1.setText("还没有输入数字");
        }
        jTextField1.setText("%");
        s = "";
    }                                      
    
    private void jButton7MouseReleased(java.awt.event.MouseEvent evt) {                                       
        s = s + 1;
        jTextField1.setText(s);
    }                                      
    
    private void jButton8MouseReleased(java.awt.event.MouseEvent evt) {                                       
        s = s + 2;
        jTextField1.setText(s);
    }                                      
    
    private void jButton9MouseReleased(java.awt.event.MouseEvent evt) {                                       
        s = s + 3;
        jTextField1.setText(s);
    }                                      
    
    private void jButton11MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 4;
        jTextField1.setText(s);
    }                                       
    
    private void jButton10MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 5;
        jTextField1.setText(s);
    }                                       
    
    private void jButton12MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 6;
        jTextField1.setText(s);
    }                                       
    
    private void jButton13MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 7;
        jTextField1.setText(s);
    }                                       
    
    private void jButton15MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 8;
        jTextField1.setText(s);
    }                                       
    
    private void jButton14MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 9;
        jTextField1.setText(s);
    }                                       
    
    private void jButton17MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + '.';
        jTextField1.setText(s);
    }                                       
    
    private void jButton16MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 0;
        jTextField1.setText(s);
    }                                       
    
    private void jButton18MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s1 = jTextField1.getText().trim();
        temp = Double.parseDouble(s1);
        switch (flag) {
            case 1:
                result = result + temp;
                break;
            case 2:
                result = result - temp;
                break;
            case 3:
                result = result * temp;
                break;
            case 4:
                result = result / temp;
                break;
            case 5:
                result = result % temp;
                break;
            default:
                jTextField1.setText("出现错误!");
        }
        jTextField1.setText(String.valueOf(result));
        s = "";
    }                                       
    
    private void jButton6MouseReleased(java.awt.event.MouseEvent evt) {                                       
        result = 0;
        s = "";
        s1 = "";
        flag = 0;
        jTextField1.setText("");
    }                                      


实际上大部分代码是重复的。

基本思路就是每按一下数字键,就为一个字符串类型对象增加一个相应的字符,按下运算符的按键时,将这个字符串转化为数字,double类型的。同时根据运算符的不同将变量flag设置为不同的值。按下等号时,再将新生成的字符串转化为数字,根据flag的值将两个值进行相应的运算,并显示出来。


当然可以。在许多编程语言中,包括Java、C++等,`switch`语句常用于实现简单的条件判断和选择。下面是一个基本的简易计算器功能的示例,它支持加法、减法、乘法和除法: ```java public class SimpleCalculator { public static void main(String[] args) { double num1 = 10.0; double num2 = 5.0; String operator; Scanner scanner = new Scanner(System.in); System.out.println("请输入运算符 (+, -, *, /): "); operator = scanner.next(); switch (operator) { case "+": System.out.println(num1 + " + " + num2 + " = " + calculateAddition(num1, num2)); break; case "-": System.out.println(num1 + " - " + num2 + " = " + calculateSubtraction(num1, num2)); break; case "*": System.out.println(num1 + " * " + num2 + " = " + calculateMultiplication(num1, num2)); break; case "/": if (num2 != 0) { // 避免除数为零的情况 System.out.println(num1 + " / " + num2 + " = " + calculateDivision(num1, num2)); } else { System.out.println("错误:除数不能为零!"); } break; default: System.out.println("无效的运算符,请输入 +, -, *, 或 /"); break; } } private static double calculateAddition(double a, double b) { return a + b; } private static double calculateSubtraction(double a, double b) { return a - b; } private static double calculateMultiplication(double a, double b) { return a * b; } private static double calculateDivision(double a, double b) { return a / b; } } ``` 在这个例子中,用户输入运算符,然后`switch`语句会根据不同的运算符调用相应的计算函数。注意,为了处理除法可能遇到的除数为零的情况,我们添加了一个检查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值