用php编写简易计算器实现分支语句知识点的巩固

<!--2018-08-08 分支语句 实现简单计算器 -->


<html>
	<head>
		<title>PHP实现计算器(使用分支结构)</title>
	</head>
	
	<body>
		<?php
			$mess="";
			if(isset($_POST['sub']))
			{
				if($_POST['num1']=="")
				{
					$mess = "第一个数不能为空;<br>";
				}else{
					if(!is_numeric($_POST['num1']))
					{
						$mess = "第一个数必须是数字;<br>";
					}
				}
				
				if($_POST['num2']=="")
				{
					$mess = "第二个数字不能为空;<br>";
				}else{
					if(!is_numeric($_POST['num2']))
					{
						$mess = "第二个数必须为数字;<br>";
					}else{
						if($_POST['opt'] == '/' &&$_POST['num2']==0)
						{
							$mess = "除数不能为0;";
						}
					}
						
				}
			}
		?>
		<table border="1" align="center" width="400">
			<form  method="post">
				<caption><h1>计算器</h1></caption>
				<tr>
					<td>
					<!--解释一下为何$_POST['num1']前面要加@ ;
					    因为此处为post传参,没有重新创建传参页面,所以在开始运行时,$POST没有创建,不存在,所以会报错
						只有经过一次post之后,页面才会显示正常,所以为了避免第一次错误显示,在此可能出错语句前面加了错误控制运算符@;
						下面几个同理;
						
						解析:<option value="+" <?php echo @$_POST['opt']=="+" ? "selected":""?>>+</option>
						$_POST['opt']=="+" ? "selected":""  这是个三元式,如果post传输值为'+' 则输出selected,否则输出空;
						selected属性为option 属性,就是当选择值有多个时,加入selected的值优先展示在屏幕;
						就是为了记忆上次运算
					-->
						<input type="text" name="num1" value="<?php echo @$_POST['num1']; ?>"/>
					</td>
					
					<td>
						<select name="opt">
							<option value="+" <?php echo @$_POST['opt']=="+" ? "selected":""?>>+</option>
							<option value="-" <?php echo @$_POST['opt']=="-" ? "selected":""?>>-</option>
							<option value="*" <?php echo @$_POST['opt']=="*" ? "selected":""?>>*</option>
							<option value="/" <?php echo @$_POST['opt']=="/" ? "selected":""?>>/</option>
							<option value="%" <?php echo @$_POST['opt']=="%" ? "selected":""?>>%</option>
						</select>
					</td>
					
					<td>
						<input type="text"  name="num2" value="<?php echo @$_POST['num2']; ?>" /> <br>
					</td>
					
					<td>
						<input type="submit" name="sub" value="计算"/>
					</td>
				</tr>
			</form>
		<?php 
			if(isset($_POST['sub']))
			{
				echo '<tr><td colspan="4">';
				
				if(!$mess){
					$sum=0;
					switch($_POST['opt'])
					{
						case "+":$sum=$_POST['num1']+$_POST['num2']; break;
						case "-":$sum=$_POST['num1']-$_POST['num2']; break;
						case "*":$sum=$_POST['num1']*$_POST['num2']; break;
						case "/":$sum=$_POST['num1']/$_POST['num2']; break;
						case "%":$sum=$_POST['num1']%$_POST['num2']; break;
					}
					
					echo "结果:{$_POST['num1']} {$_POST['opt']} {$_POST['num2']} = {$sum}";
				}
				else{
					echo $mess;
				}
				echo '</td></tr>';
			}
		?>
		</table>
	</body>
</html>
						

如有问题,请多指教!!qq:1905772768

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值