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#编写计算器 ...
随机推荐
- 常见Unix指令
常用的UNIX指令: 1.文件和目录操作 ls –l 列出当前目录下的所有内容(文件\文件夹) pwd 显示出当前目录的名称 cd 改变当前操作的目录 who 显示当前用户名 clear ...
- MongoDB小结16 - find【查询条件$in】
$in可以查询一个键的多个值 举例,每个人有爱好,假定为一个,数据太多,咱们用第二个参数来过滤一下 db.user.find({},{"_id":0}) { "hobby ...
- Java正则表达式过滤出字母、数字和中文
原文:http://blog.csdn.net/k21325/article/details/54090066 1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A ...
- Office高级威胁漏洞在野利用分析
高级威胁漏洞背景 在高级威胁攻击中,黑客远程投递入侵客户端最喜欢的漏洞是office文档漏洞,就在刚刚结束不久的黑帽子大会上,最佳客户端安全漏洞奖颁给了CVE-2017-0199漏洞,这个漏洞是时下o ...
- laravel5.4新特性
http://www.cnblogs.com/webskill/category/1067140.html laravel 5.4 新特性 component and slot 使用: 1.compo ...
- MapReduce Cross 示例
MapReduce Cross 示例 package com.bsr.cross; import java.io.IOException; import org.apache.hadoop.conf. ...
- HTTP请求库——axios源码阅读与分析
概述 在前端开发过程中,我们经常会遇到需要发送异步请求的情况.而使用一个功能齐全,接口完善的HTTP请求库,能够在很大程度上减少我们的开发成本,提高我们的开发效率. axios是一个在近些年来非常火的 ...
- Python开发【面向对象编程】
一.概述 面向过程:根据业务逻辑从上到下,完成代码: 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可: 面向对象:对函数进行分类和封装. 二.面向对象 1.类.对象.方法.实例 ...
- PHP 给图片加边框
/** * 给图片加边框 by liangjian 2014-06-19 * @param $ImgUrl 图片地址 * @param $SavePath 新图片保存路径 * @param $px 边 ...
- 2016/2/24 . html . htm . shtml 的区别
htm.html.shtml网页区别 htm.html.shtml区别 接下来我们来了解下htm.shtml.html这三者之间区别.首先htm.html.shtml都是静态网页的后缀,三者也 ...