jsp计算器代码加减乘除_让你的代码更加优雅的编程技巧-跳转表

本文通过对比初始的switch语句实现的jsp计算器,介绍了如何利用函数跳转表改进代码,提高效率和可维护性。在函数跳转表版本中,新增操作无需修改calc函数,只需在函数表中添加对应函数,时间复杂度降低到O(1)。文章还提醒读者注意在实际应用中考虑编译器优化和数组越界问题。
摘要由CSDN通过智能技术生成

前言

前面我们讲到了《函数指针》,今天我们看一个编程技巧-函数跳转表。我们先来看如何实现一个简易计算器。

初始版本

让我们实现一个简易计算器,我们首先能想到的方式是什么?switch语句或者if else语句。没错,初学就会想到的两种方式,我们来看看这种实现方式。这里我们选择switch语句,定义一个操作类型,用户选择操作类型与操作类型匹配时,选择对应的处理函数进行处理,calc1.c代码如下:

/*calc1.c*/
#include<stdio.h>
#include<stdlib.h>
/*将操作定义为枚举类型*/
typedef enum
{
    OP_ADD = 0,
    OP_SUB,
    OP_MUL,
    OP_DIV,
}OP_TYPE;
/*加减乘除处理函数*/
double ADD(double op1,double op2)
{
    return op1+op2;
}
double SUB(double op1,double op2)
{
    return op1-op2;
}
double MUL(double op1,double op2)
{
    return op1*op2;
}
double DIV(double op1,double op2)
{
    return op1/op2;
}
double calc(int op,double op1,double op2)
{
    /*使用switch,根据操作类型,选择操作*/
    double result = 0;
    switch(op)
    {
        case OP_ADD:
        {
            result = ADD(op1,op2);
            b
以下是一个简单的 JSP 计算器示例,支持加减乘除运算: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>计算器</title> </head> <body> <h2>计算器</h2> <form action="" method="post"> <input type="number" name="num1"> <select name="operator"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="number" name="num2"> <input type="submit" value="计算"> </form> <%-- 处理单提交 --%> <% if (request.getMethod().equals("POST")) { int num1 = Integer.parseInt(request.getParameter("num1")); int num2 = Integer.parseInt(request.getParameter("num2")); String operator = request.getParameter("operator"); int result = 0; switch (operator) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": result = num1 / num2; break; } out.print("<p>结果:" + result + "</p>"); } %> </body> </html> ``` 该示例中,首先展示了一个简单的 HTML 单,用户可以在其中输入两个数值和一个运算符,然后提交单。当单提交时,JSP 页面会根据用户输入的值,进行加减乘除的计算,并将结果输出到页面上。注意,为了避免输入非数字字符导致程序崩溃,我们在代码中使用了 `Integer.parseInt()` 方法将用户输入的数值转换为整数类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值