php简易计算器

php循环结构

案例:php简易计算器

步骤:

1.先绘制这个表格

2.根据表单提交的sub属性判断一下,是否点击计算了

(GET方式提交的数据,通过地址栏传递的)

3.计算,并将结果输入到第二行

  问题:当点击计算后,之前输入数字及运算符消失,因为点击计算后提交到当前页面,等于刷新

           当点击之后,运算符默认又恢复到+

  解决:通过selected属性控制下拉列表是否被选中

           单路分支,可以不写{}

4.完善

  如果用户输入是字符串或者是空值,提示不能为空或者不能为字符串

  通过地址栏上有没有 sub=计算 这个参数来判断用户有没有点击计算

 1 <html>
 2     <head>
 3         <meta charset="utf-8"/>
 4     </head>
 5 <?php
 6     $result='';
 7     $message='';
 8     $num1=true;
 9     $num2=true;
10     $numa=true;
11     $numb=true;
12 
13     if($_GET['sub']=='计算'){
14         //用户点击了计算按钮
15         if($_GET['num1']==''){
16             $num1=false;
17             $message.='第一个不能为空<br/>';
18             //return false;  //停止代码继续执行
19         }
20         if($_GET['num2']==''){
21             $num2=false;
22             $message.='第二个不能为空<br/>';
23             //return false;  //停止代码继续执行
24         }
25         if(!is_numeric($_GET['num1'])){
26             $numa=false;
27             $message.='第一个数字必须为数值<br/>';
28         }
29         if(!is_numeric($_GET['num2'])){
30             $numb=false;
31             $message.='第二个数字必须为数值<br/>';
32         }
33         if($num1&&$num2&&$numa&&$numb){
34             switch($_GET['ysf']){
35                 case '+':
36                 $result=$_GET['num1']+$_GET['num2'];
37                 break;
38 
39                 case '-':
40                 $result=$_GET['num1']-$_GET['num2'];
41                 break;
42 
43                 case '*':
44                 $result=$_GET['num1']*$_GET['num2'];
45                 break;
46 
47                 case '/':
48                 $result=$_GET['num1']/$_GET['num2'];
49                 break;
50 
51                 case '%':
52                 $result=$_GET['num1']%$_GET['num2'];
53                 break;
54             }
55         }
56 
57         
58         echo $result;
59     }
60 ?>
61     <body>
62         <table align="center" cellspacing='4px' cellpadding='0'>
63         <caption><h2>php的简易计算器</h2></caption>
64             <form action='jsq.php' method='GET' >
65             <tr>
66                 <td><input type="text" name='num1' value="<?php echo $_GET['num1']?>"/></td>
67                 <td>
68                     <select name='ysf'>
69                         <option <?php if($_GET['ysf']=='+')echo 'selected';?>>+</option>
70                         <option <?php if($_GET['ysf']=='-'){echo 'selected';}?>>-</option>
71                         <option <?php if($_GET['ysf']=='*'){echo 'selected';}?>>*</option>
72                         <option <?php if($_GET['ysf']=='/'){echo 'selected';}?>>/</option>
73                         <option <?php if($_GET['ysf']=='%'){echo 'selected';}?>>%</option>
74                     </select>
75                 </td>
76                 <td><input type="text" name='num2' value="<?php echo $_GET['num2']?>"/></td>
77                 <td><input type="submit" name="sub" value="计算"/></td>
78             </tr>
79             <tr>
80                 <td colspan='4'>
81                 <?php 
82                     if($num1&&$num2&&$numa&&$numb){
83                         echo "运算结果是:".$_GET['num1'].$_GET['ysf'].$_GET['num2']."=".$result;
84                     }else{
85                         echo $message;
86                     }
87                     
88                 ?>
89                 </td>
90             </tr>
91             </form>
92         </table>
93     </body>    
94 </html>
原文地址:https://www.cnblogs.com/baixuemin/p/4819326.html