php简易计算器
php循环结构
案例:php简易计算器
步骤:
1.先绘制这个表格
2.根据表单提交的sub属性判断一下,是否点击计算了
(GET方式提交的数据,通过地址栏传递的)
3.计算,并将结果输入到第二行
问题:当点击计算后,之前输入数字及运算符消失,因为点击计算后提交到当前页面,等于刷新
当点击之后,运算符默认又恢复到+
解决:通过selected属性控制下拉列表是否被选中
单路分支,可以不写{}
4.完善
如果用户输入是字符串或者是空值,提示不能为空或者不能为字符串
通过地址栏上有没有 sub=计算 这个参数来判断用户有没有点击计算
<html>
<head>
<meta charset="utf-8"/>
</head>
<?php
$result='';
$message='';
$num1=true;
$num2=true;
$numa=true;
$numb=true; if($_GET['sub']=='计算'){
//用户点击了计算按钮
if($_GET['num1']==''){
$num1=false;
$message.='第一个不能为空<br/>';
//return false; //停止代码继续执行
}
if($_GET['num2']==''){
$num2=false;
$message.='第二个不能为空<br/>';
//return false; //停止代码继续执行
}
if(!is_numeric($_GET['num1'])){
$numa=false;
$message.='第一个数字必须为数值<br/>';
}
if(!is_numeric($_GET['num2'])){
$numb=false;
$message.='第二个数字必须为数值<br/>';
}
if($num1&&$num2&&$numa&&$numb){
switch($_GET['ysf']){
case '+':
$result=$_GET['num1']+$_GET['num2'];
break; case '-':
$result=$_GET['num1']-$_GET['num2'];
break; case '*':
$result=$_GET['num1']*$_GET['num2'];
break; case '/':
$result=$_GET['num1']/$_GET['num2'];
break; case '%':
$result=$_GET['num1']%$_GET['num2'];
break;
}
} echo $result;
}
?>
<body>
<table align="center" cellspacing='4px' cellpadding='0'>
<caption><h2>php的简易计算器</h2></caption>
<form action='jsq.php' method='GET' >
<tr>
<td><input type="text" name='num1' value="<?php echo $_GET['num1']?>"/></td>
<td>
<select name='ysf'>
<option <?php if($_GET['ysf']=='+')echo 'selected';?>>+</option>
<option <?php if($_GET['ysf']=='-'){echo 'selected';}?>>-</option>
<option <?php if($_GET['ysf']=='*'){echo 'selected';}?>>*</option>
<option <?php if($_GET['ysf']=='/'){echo 'selected';}?>>/</option>
<option <?php if($_GET['ysf']=='%'){echo 'selected';}?>>%</option>
</select>
</td>
<td><input type="text" name='num2' value="<?php echo $_GET['num2']?>"/></td>
<td><input type="submit" name="sub" value="计算"/></td>
</tr>
<tr>
<td colspan='4'>
<?php
if($num1&&$num2&&$numa&&$numb){
echo "运算结果是:".$_GET['num1'].$_GET['ysf'].$_GET['num2']."=".$result;
}else{
echo $message;
} ?>
</td>
</tr>
</form>
</table>
</body>
</html>
php简易计算器的更多相关文章
- 自制c#简易计算器
这是一个课堂作业,我觉得作为一个简易的计算器不需要态度复杂的东西,可能还有一些bug,有空再慢慢加强. using System;using System.Collections.Generic;us ...
- 剖析简易计算器带你入门微信小程序开发
写在前面,但是重点在后面 这是教程,也不是教程. 可以先看Demo的操作动图,看看是个什么玩意儿,GitHub地址(https://github.com/dunizb/wxapp-sCalc) 自从微 ...
- PHP学习笔记02——简易计算器
<!DOCTYPE html> <html> <head> <title>PHP简易计算器</title> </head> &l ...
- JavaScript之简易计算器
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- 菜鸟学习Struts——简易计算器
这是学习Struts的一个简单的例子文件结构如下: 1.配置Struts环境 2.新建input.jsp,success.jsp,error.jsp input.jsp代码如下: <%@ pag ...
- Python之实现一个简易计算器
自己动手写计算器 一.功能分析 用户输入一个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式里 ...
- 使用HTML+CSS,jQuery编写的简易计算器
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 使用HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
之前发布了一款简易的计算器,今天做了一下修改,添加了键盘监听事件,不用再用鼠标点点点啦 JS代码: var yunSuan = 0;// 运算符号,0-无运算;1-加法;2-减法;3-乘法;4-除法 ...
- C#Windows Form简易计算器实现(中)
昨天花了一天的时间弄计算器.也算是做出来了,还是简易的(怀疑猿生!!).在此先感谢昨天被我骚扰的朋友. 先贴一张界面看看 其实健壮性还是挺差的,用户体验也是极差的.比如说用户输入了不合理运算式子,我就 ...
- C#Windows Form简易计算器实现(上)
第一次写博客,来分享一个简易计算器的代码.作为一名准程序员,就是要多写代码才能孰能生巧.重视基础知识才能飞的更快更高以及更稳. 代码可能会写的很糟糕,不完美不安全之处希望发现的越多越好 c#编写计算器 ...
随机推荐
- mysql常用jar包
连接Mysql数据库: 常用的连接池有两种 DBCP连接池 C3P0连接池 Apache的commons组件 -- DBCP连接池: commons-dbutils-1.4.jar 封装并简化了JDB ...
- Linux下使用make install安装的软件如何卸载
如果是Ubuntu的系统,那么可以使用checkinstall来生成deb包来安装,然后卸载 参考:http://blog.sina.com.cn/s/blog_4178f4bf0101cmt7.ht ...
- Servlet发送邮件
以下内容引用自http://wiki.jikexueyuan.com/project/servlet/sending-email.html: 使用Servlet发送一封电子邮件是非常简单的,但是开始之 ...
- delphi调用oracle存储过程(ODAC)
CREATE OR REPLACE PACKAGE p_lee01ISTYPE cur_lee01 IS REF CURSOR;END; CREATE OR REPLACE PROCEDURE pro ...
- sonar做代码检测时如何忽略一些代码文件
1.管理员登录sonar 2.如图 一条规则配置一个,不要填写逗号或者分号分割的多个规则
- 【CV论文阅读】Deep Linear Discriminative Analysis, ICLR, 2016
DeepLDA 并不是把LDA模型整合到了Deep Network,而是利用LDA来指导模型的训练.从实验结果来看,使用DeepLDA模型最后投影的特征也是很discriminative 的,但是很遗 ...
- AIM Tech R3 div2 E Centroid
思路很明显了,假设是点x,则看它的子树中是否有大于n/2的,如果有,则在该子树中剪去它可以剪的且小于n/2的,接到点x上. 则统计出在以x点为根的子树中,它的各子树可以剪去的且小于n/2的最大子子树. ...
- iOS_开发中遇到的那些问题_1
[自编号:60][AutoLayout中,怎样让ImageView保持固定的宽高比?比如1:1] 先将imageViewframe手动写成:宽20,高20,再勾选Aspect Ratio加入宽高比约束 ...
- P-Called-Party-ID头域
典型的proxy server在路由 INVITE 请求到目标时插入 P-Called-Party-ID 头域.该头域用 porxy 收到请求的 Request-URI 填写. UAS 从几个已注冊的 ...
- __init__、__str__、__del__方法
1.def__init__()方法: class Cat: """定义了一个Cat类""" #初始化对象 def __init__(self ...