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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40179546/article/details/81518333
<!--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

猜你喜欢

转载自blog.csdn.net/qq_40179546/article/details/81518333