zoukankan      html  css  js  c++  java
  • PHP丨PHP基础知识之条件语SWITCH判断「理论篇」

    Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以PHP来说,switch(开关语句)常和case break default一起使用

    典型结构

    switch($controllingExpression){

    case 'constantExpression1':echo 'statement1';

    case 'constantExpression2':echo 'statement2';

    case 'constantExpression3':echo 'statement3';

    default:echo 'statement';

    }

    语法

    PHP Switch 语句

    如果您希望有选择地执行若干代码块之一,请使用 Switch 语句。

    使用 Switch 语句可以避免冗长的 if..elseif..else 代码块。

    语法

    switch (expression){case label1:code to be executed if expression = label1;break;case label2:code to be executed if expression = label2;break;default:code to be executedif expression is differentfrom both label1 and label2;}

    工作原理:

    对表达式(通常是变量)进行一次计算

    把表达式的值与结构中 case 的值进行比较

    如果存在匹配,则执行与 case 关联的代码

    代码执行后,break语句阻止代码跳入下一个 case 中继续执行

    如果没有 case 为真,则使用 default 语句

    下面的例子使用两种不同方法实现同样的事,一个用一系列的 if 语句,另一个用 switch 语句:

    1 、switch结构

    2、 switch结构可以用字符串

    为避免错误,理解 switch 是怎样执行的非常重要。switch 语句一行接一行地执行(实际上是语句接语句)。开始时没有代码被执行。仅当一个 case 语句中的值和 switch 表达式的值匹配时 php 才开始执行语句,直到 switch 的程序段结束或者遇到第一个 break 语句为止。如果不在 case 的语句段最后写上 break 的话,php 将继续执行下一个 case 中的语句段。例如:

    这里如果 $i 等于 0,php 将执行所有的 print 语句!如果 $i 等于 1,php 将执行后面两条 print 语句。只有当 $i 等于 2 时,才会得到“预期”的结果――只显示“i equals 2”。所以,别忘了 break 语句就很重要(即使在某些情况下故意想避免提供它们时)。

    在 switch 语句中条件只求值一次并用来和每个 case 语句比较。在 elseif 语句中条件会再次求值。如果条件比一个简单的比较要复杂得多或者在一个很多次的循环中,那么用 switch 语句可能会快一些。

    在一个 case 中的语句也可以为空,这样只不过将控制转移到了下一个 case 中的语句。

    一个 case 的特例是 default。它匹配了任何和其它 case 都不匹配的情况,并且应该是最后一条 case 语句。

    case 表达式可以是任何求值为简单类型的表达式,即整型或浮点数以及字符串。不能用数组或对象,除非它们被解除引用成为简单类型。

    switch 支持替代语法的流程控制。更多信息见流程控制的替代语法一节。

    switch语句注意事项

    switch语句执行时会从上到下根据括号中表达式的值作比较,当某个case语句中的表达式与此值相同时,就执行这个case语句或语句序列,直到遇到break为止。 break语句是必须有的,它用来结束switch语句的执行。如果所有case语句后面的表达式都不等于switch语句的表达式expr1的值川0执行default后面的默认语句序列。不过,default部分是可选的。如果没有这一部分,并遇到所有case语句都不匹配,那么,就不作任何处理而进入后续程序段的执行。

    可见,一个switch语句可以代替多个if-else语句组成的分支结构,而switch语句从思路上显得更清晰。

    使用switch语句时,要注意expr1必须是符合byte,char,short,int类型的常量表达式,而不能用浮点类型或long类型,//(也不能为一个字符串)。 (jdk7后,允许String)

    1 、switch(colorNum){

    2 、case 0:

    3 、setBackground(colo. red);

    4 、break;

    5 、case 1:

    6 、setBackground(color.green) ;

    7 、break;

    8 、default:

    9 、setBackground(color.black);

    10 、break;

    11 、}

    switch还有一个用法:

    1 、switch(colorNum){

    2 、case 0:

    3 、case 1:

    4 、setBackground(color.green) ;

    5 、break;

    6 、default:

    7 、setBackground(color.black);

    8 、break;

    9 、}

    文章收集与网络,辛苦收集转载请备注出处一只大脸猫博客!

    PHP丨PHP基础知识之条件语IF判断「理论篇」

    PHP丨PHP基础知识之流程控制WHILE循环「理论篇」

    PHP丨PHP基础知识之流程控制for循环「理论篇」

  • 相关阅读:
    Anaconda3的Jupyter notebook调用ArcGISPro的Arcpy
    ArcMap 创建空间邻接矩阵
    Anaconda3的Jupyter notebook切换Python3和Python2环境并调用Arcpy
    PHP.MVC的模板标签系统(二)
    PHP汉字转拼音的类
    Linux 解压命令大全
    ASP应用之模板采用
    PHP中的串行化变量和序列化对象(一)
    CSS常用技巧介绍
    ASP实现多图片上传(一)
  • 原文地址:https://www.cnblogs.com/yzdlm/p/13151542.html
Copyright © 2011-2022 走看看