zoukankan      html  css  js  c++  java
  • 操作符与控制结构

    操作符

    操作符是用来对数组和变量进行某种操作运算的符号。

     

    1、算术操作符

    操作符

    名称

    示例

    +

    $a+$b

    -

    $a-$b

    *

    $a*$b

    /

    $a/$b

    %

    取余

    $a%$b

     

     

    2、复合赋值操作符

    操作符

    使用方法

    等价于

    +=

    $a+=$b

    $a=$a+$b

    -=

    $a-=$b

    $a=$a-$b

    *=

    $a*=$b

    $a=$a*$b

    /=

    $a/=$b

    $a=$a/$b

    %=

    $a%=$b

    $a=$a%$b

    .=

    $a.=$b

    $a=$a.$b

     

     

    前置递增递减和后置递增递减运算符:

    $a=++$b;

    $a=$b++;

    $a=--$b;

    $a=$b--;

     

    3、比较运算符

    操作符

    名称

    使用方法

    = =

    等于

    $a= =$b

    = = =

    恒等

    $a= = =$b

    !=

    不等

    $a!=$b

    != =

    不恒等

    $a!= =$b

    <>

    不等

    $a<>$b

    <

    小于

    $a<$b

    >

    大于

    $a>$b

    <=

    小于等于

    $a<=$b

    >=

    大于等于

    $a>=$b

     

    注:恒等表示只有两边操作数相等并且数据类型也相当才返回true;

    例如:0= ="0" 这个返回为true ,因为操作数相等

          0= = ="0"  这个返回为false,因为数据类型不同

     

     

    4、逻辑运算符

    操作符

    使用方法

    使用方法

    说明

    !

    !$b

    如果$bfalse,则返回true;否则相反

    &&

    $a&&$b

    如果$a$b都是true,则结果为true;否则为false

    ||

    $a||$b

    如果$a$b中有一个为true或者都为true时,其结果为true;否则为false

    and

    $a and $b

    &&相同,但其优先级较低

    or

    $a or $b

    ||相同,但其优先级较低

     

    操作符"and""or"&&||的优先级要低。

     

    5、三元操作符

    Condition ? value if true : value if false

    示例:($grade>=50 ? "Passed" : "Failed")

     

    6、错误抑制操作符:

    $a=@(57/0);

    除数不能为0,会出错,所以加上@避免出现错误警告。

     

    7、数组操作符

    操作符

    使用方法

    使用方法

    说明

    +

    联合

    !$b

    返回一个包含了$a$b中所有元素的数组

    = =

    等价

    $a&&$b

    如果$a$b具有相同的元素,返回true

    = = =

    恒等

    $a||$b

    如果$a$b具有相同的元素以及相同的顺序,返回true

    !=

    非等价

    $a and $b

    如果$a$b不是等价的,返回true

    <>

    非等价

     

    如果$a$b不是等价的,返回true

    != =

    非恒等

    $a or $b

    如果$a$b不是恒等的,返回true

     

    操作符的优先级和结合性:

    一般地说,操作符具有一组优先级,也就是执行他们的顺序。

    操作符还具有结合性,也就是同一优先级的操作符的执行顺序。这种顺序通常有从左到右,从右到左或者不相关。

    下面给出操作符优先级的表。最上面的操作符优先级最低,按着表的由上而下的顺序,优先级递增。

     

    操作符优先级

    结合性

    操作符

    Or

    Xor

    And

    Print

    = += -= *= /= .= %= &= |= ^= ~= <<= >>=

    :

    ||

    &&

    |

    ^

    &

    不相关

    = =  != =  = = =  != =

    不相关

    <<= >>=

    << >>

    + - .

    * / %

    ! ~ ++ -- (int)(double)(string)(array)(object) @

    []

    不相关

    New

    不相关

    ()

     

    为了避免优先级混乱,可以使用括号避开优先级。

    ================================================================

    控制结构

    如果我们希望有效地相应用户的输入,代码就需要具有判断能力。能够让程序进行判断的结构称为条件。

    1、if..else循环有三种结构
    第一种是只有用到if条件,当作单纯的判断。解释成“若发生了某事则怎样处理”。语法如下:
    if (expr) { statement }
    其中的expr为判断的条件,通常都是用逻辑运算符号当判断的条件。而statement为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
    范例:本例省略大括号。

    <?php
    if ($state==1)echo "哈哈" ;
    ?>

    这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,=是赋值。
    范例:本例的执行部分有三行,不可省略大括号。

    <?php
    if ($state==1) {
    echo "哈哈 ;
    echo "<br>" ;
    }
    ?>

     

    第二种是除了if之外,加上了else的条件,可解释成“若发生了某事则怎样处理,否则该如何解决”。语法如下:
    if (expr) { statement1 } else { statement2 }
    范例:上面的例子来修改成更完整的处理。其中的else由于只有一行执行的指令,因此不用加上大括号。

    <?php
    if ($state==1) {
    echo "哈哈" ;
    echo "<br>";
    }
    else{
    echo "呵呵";
    echo "<br>";
    }
    ?>

     

    第三种就是递归的if..else循环,通常用在多种决策判断时。它将数个if..else拿来合并运用处理。
    直接看下面的例子:

    <?php
    if ( $a > $b ) {
    echo "a 比 b 大" ;
    } elseif ( $a == $b ) {
    echo "a 等于 b" ;
    } else {
    echo "a 比 b 小" ;
    }
    ?>

    上例只用二层的if..else循环,用来比较a和b两个变量。实际要使用这种递归if..else循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。

    2、for循环就单纯只有一种,没有变化,它的语法如下:
    for (expr1; expr2; expr3) { statement }
    其中的expr1为条件的初始值。expr2为判断的条件,通常都是用逻辑运算符号(logical operators)当判断的条件。expr3为执行statement后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而statement为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
    下例是用for循环写的的例子:

    <?php
    for ( $i = 1 ; $i <= 10 ; $i ++) {
    echo "这是第".$i."次循环<br>" ;
    }
    ?>

    3、switch循环,通常处理复合式的条件判断,每个子条件,都是case指令部分。在实作上若使用许多类似的if指令,可以将它综合成switch循环。
    语法如下:
    switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; }
    其中的expr条件,通常为变量名称。而case后的exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用break跳离循环。

    <?php
    switch ( date ( "D" )) {
    case "Mon" :
    echo "今天星期一" ;
    break;
    case "Tue" :
    echo "今天星期二" ;
    break;
    case "Wed" :
    echo "今天星期三" ;
    break;
    case "Thu" :
    echo "今天星期四" ;
    break;
    case "Fri" :
    echo "今天星期五" ;
    break;
    default:
    echo "今天放假" ;
    break;
    }
    ?>

    这里需要注意的是break;别遗漏了,default,省略是可以的。
    很明显的,上述的例子用if循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

  • 相关阅读:
    DOM
    ES6的export和import
    JavaScript:Location
    垃圾回收机制之一:标记删除算法
    KnockoutJS:
    package.json
    2016/7/27
    requirejs:研究笔记
    postmessage/cors跨域postMessage、xhr2和xmldomain
    javascript:算法之数组sort排序
  • 原文地址:https://www.cnblogs.com/huige728/p/2382631.html
Copyright © 2011-2022 走看看