001-四则运算
产品说明
本来想做一个简单html页面然后跳转,时间仓促,几次测试没成功,最后只做了几个后端处理数据。下次有空补上
|介绍
这是一个针对实数的四则计算器
|使用
跑起来Idea后,登录localhost:8080/
By URL
通过不同的url来获得不同的计算结果
operation | path |
---|---|
Plus | /Plus?q1=%s&q2=%s |
Minus | /Minus?q1=%s&q2=%s |
Multiple | /Multiple?q1=%s&q2=%s |
Divide | /Divide?q1=%s&q2=%s |
%s 代表传入参数
|错误信息
Message | Decription |
---|---|
输入的参数不完整,残缺 | 输入的值为空值 |
无效输入不是数字或者输入超出范围 | 输入的值异常 |
输入除数为0 | 除数不应该为0 |
加法时结果超出范围 | 两数之和超出范围 |
|已知错误
除法为0是可能会有误判。
乘法无法判断结果是否超出范围。
学习历程
1.文档学习:
-
首先: 根据《 introduction-to-spring-boot》先大概了解的spring全家桶,以及重要的框架,bean,注解,依赖。
-
其次: 根据《基于Spring boot 的简单REST API》 了解到两种请求方式,准备好Postman ,然后配置好maven环境,
- 建立起了第一个Spring boot的项目,然后先实现了简单的a+b
2.学习拓展:
-
没能实现的html里面的form表单,页面跳转等。
-
try-catch对异常的处理
代码
package com.example.firstspringboot.controller;
import com.example.firstspringboot.payload.request.DataRequest;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
@RestController
public class Main {
@GetMapping("/index.html")
public String helloWorld() {
return "index";
}
@GetMapping("/Plus")
public String plus(@RequestParam String q1, @RequestParam String q2) {
String s = "";
if(q1.equals("")||q2.equals("")){
s+="输入的值为空值";
return s;
}
Double a,b;
try{
a = Double.parseDouble(q1);
b = Double.parseDouble(q2);
}catch (NumberFormatException e1){
s+="输入的值异常";
return s;
}
if(Double.MAX_VALUE - a < b){
s+="两数之和超出范围";
return s;
}
return ""+(a+b);
}
@GetMapping("/Minus")
public String Minus(@RequestParam String q1, @RequestParam String q2) {
String s = "";
if(q1.equals("")||q2.equals("")){
s+="输入的值为空值";
return s;
}
Double a,b;
try{
a = Double.parseDouble(q1);
b = Double.parseDouble(q2);
}catch (NumberFormatException e) {
s += "输入的值异常";
return s;
}
return ""+(a-b);
}
@GetMapping("/Multiple")
public String Multiple(@RequestParam String q1, @RequestParam String q2) {
String s = "";
if(q1.equals("")||q2.equals("")){
s+="输入的值为空值";
return s;
}
Double a,b;
try{
a = Double.parseDouble(q1);
b = Double.parseDouble(q2);
}catch (NumberFormatException e) {
s += "输入的值异常";
return s;
}
return ""+(a*b);
}
@GetMapping("/Divide")
public String Divide(@RequestParam String q1, @RequestParam String q2) {
String s = "";
if(q1.equals("")||q2.equals("")){
s+="输入的值为空值";
return s;
}
Double a,b;
try{
a = Double.parseDouble(q1);
b = Double.parseDouble(q2);
if(Math.abs(b)<1e-18){
s+="除数不应该为0";
return s;
}
}catch (NumberFormatException e) {
s += "输入的值异常";
return s;
}
return ""+(a/b);
}
}