老师帮忙看一下对不对

来源:1-17 编程练习

昵称加载中__

2019-10-04 17:32:34

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<h1>计算器</h1>
<form action="#"method="post">
   数值1: <input type="text" name="num1" id="">
    <select name="op">
        <option value="+">+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
        <option value="%">%</option>
    </select>
   数值2: <input type="text" name="num2" id="">
    <input type="submit" value="提交" name="act">
</form>
<?php
//消除错误
error_reporting(E_ALL&~E_NOTICE);
//判断用户是否点了按钮
$act=$_POST['act'];
if ($act){
//数据接收
    $num1=$_POST['num1'];
    $num2=$_POST['num2'];
    $op=$_POST['op'];
    //判断num1和num2是否是数值
    if (is_numeric($num1)&&is_numeric($num2)){
        //根据不同操作完成不同的运算
    switch ($op){
        case '+':
            $eve=$num1+$num2;
            break;
        case '-':
            $eve=$num1-$num2;
            break;
        case '*':
            $eve=$num1*$num2;
            break;
        case '/':
            if ($num2!=0){
                $eve=$num1/$num2;

            }else{
                exit('除数不能等于0');
            }
            break;
            case '%':
                if ($num2!=0){
                    $eve=$num1%$num2;
                }else{
                    exit('被除余不能等于0');
                }
                break;
    }
    echo "运算结果为:<br>{$num1}{$op}{$num2}={$eve}";
    }else{
        echo '输入必须是数字';
    }
}


?>
</body>
</html>


写回答

1回答

好帮手慕小尤

2019-10-06

同学你好,逻辑正确,棒棒哒!只是有一个小问题,在测试代码时是不会抑制错误的。当关闭错误抑制时,会报未定义变量的错误。如图所示:

http://img.mukewang.com/climg/5d995d49091cbbd007180185.jpg

解决方法:先判断是否是post传值,再进行赋值。代码如下:

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<h1>计算器</h1>
<form action="#"method="post">
   数值1: <input type="text" name="num1" id="">
    <select name="op">
        <option value="+">+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
        <option value="%">%</option>
    </select>
   数值2: <input type="text" name="num2" id="">
    <input type="submit" value="提交" name="act">
</form>
<?php
//消除错误
// error_reporting(E_ALL&~E_NOTICE);
//判断用户是否点了按钮
if ($_POST){
  $act=$_POST['act'];
//数据接收
    $num1=$_POST['num1'];
    $num2=$_POST['num2'];
    $op=$_POST['op'];
    //判断num1和num2是否是数值
    if (is_numeric($num1)&&is_numeric($num2)){
        //根据不同操作完成不同的运算
    switch ($op){
        case '+':
            $eve=$num1+$num2;
            break;
        case '-':
            $eve=$num1-$num2;
            break;
        case '*':
            $eve=$num1*$num2;
            break;
        case '/':
            if ($num2!=0){
                $eve=$num1/$num2;
 
            }else{
                exit('除数不能等于0');
            }
            break;
            case '%':
                if ($num2!=0){
                    $eve=$num1%$num2;
                }else{
                    exit('被除余不能等于0');
                }
                break;
    }
    echo "运算结果为:<br>{$num1}{$op}{$num2}={$eve}";
    }else{
        echo '输入必须是数字';
    }
} 
?>
</body>
</html>

祝学习愉快!

0

0 学习 · 4928 问题

查看课程