一、提问

  假设学生成绩在0-100分之间,并分为ABCDE5个等级。

  100-90为A级,89-80为B级,79-70为C级,69到60为D级,59以下为E级。

  判断一个学生的分数等级。

  (暂不涉及表单传参)

二、思路

  先给个名字变量,然后再给个分数变量,最后就是一顿if判断了。

三、代码如下



//定义一个学生分数,后期都是通过传参的方式输出分数了。
    $name = '小狼';
    $num = 75;
    //进行判断,以下是严谨的写法
    if(is_int($num) || is_float($num)){
        if($num >=90 && $num<=100){
            $str = 'A级';
        }elseif($num >=80 && $num <90){
            $str = 'B级';
        }elseif($num >=70 && $num <80){
            $str = 'C级';
        }elseif($num >=60 && $num <70){
            $str = 'D级';
        }elseif($num >=0 && $num <60){
            $str = 'E级';
        }else{
            $str = '学生成绩必须在1-100之间';
        }
    }else{
        $str = '输入的学生成绩不是数值!';
    }

    //输出结果
    // echo $str;
    $a = "<h2>学生成绩等级</h2>";
    $a .= "<p>学生姓名:{$name}</p>";
    $a .= "<p>学生分数:{$num}</p>";
    $a .= "<p>学生等级:{$str}</p>";
    echo $a;



四、知识点

  1.数据类型

  php有三种数据类型,分别是标量类型、复合类型、特殊类型

    标量类型又分:

          boolean(布尔型)

          integer(整型)

          float(浮点型)

          string(字符串型)

    复合类型又分:

          array(数组)

          object(对象)

    特殊类型又分:

          resource(资源)

          NULL(空值)

    1)布尔型

   

$a = turn;  //将turn赋予变量$a,其本身代表真
      $b = false;  //将false赋予变量$b,其本身代表假

    (这让我想起一部动漫片段,具体名字忘了,只记住那句:“在这0与1,真与假的世界……”)

    2)整型

    

分为2进制、八进制、十进制、16进制
      $oct = 073;  //前面加个0的,就表示8进制
      $dec = 59;  //平常我们使用的就是十进制
      $hex = 0x3b;  //前面加0x则表示十六进制。由于超出了10,所以就用abc来填补咯。

    3)浮点型(常说的带小数点的)

     

有两种格式
      $a = 1.22;  //这是标准格式,也就是普通的带小数点
      $b = 33.22;  
 
      $C = 1.25E5;  //这是科学计数法的格式,即1.25乘以10的5次方
      $D = 2.12e-3;  //2.12乘以10的-3次方

    4)字符串

      总之,在单引号里的都将是字符串

      而双引号因附加了转义的效果,所以会出现不同的结果

   

$name = 'yz';
      $city = '北京';
      echo $name."在 $city";  //这个因双引号会显示:yz在北京
      echo $name.'在 $city';   //这个就只能显示:yz在$city

  2.逻辑运算符(与或非)

    虽然“&&”、“||”与“and”、“or” 的功能相同,但前者比后者的优先级更高。

    对于“与”操作和“或”操作,在实际开发中需要注意两点

      1)当使用“&&”连接两个表达式时,如果左边表达式的值为false,则彻底结束输出运算结果,不再执行下去。

      2)当使用“||”连接两个表达式时,如果左边的表达式值为turn,则直接输出结果,不再执行下去。