用户名:  密码:   
您当前的位置:首页 > 网页设计 >  PHP > 

第4讲 条件与循环控制语句if.if...else.elseif.switch...case...default.while.do...while.for.foreach,不用括号的写法,终止循环

上次修改时间: 2018-07-12 14:49:58      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\PHP相关\      下一页

条件控制语句if/if...else/elseif/switch...case...default,循环控制语句:while/do...while/for/foreach及不用大括号的流程书写和退出循环
4.1 条件控制语句
1) 1.if语句 ,如果if后面表达式为真就执行下面的语句
If (expression) statement;

2) if……else ,如果表达式为真时执行,不为真是执行else后的,例
    $num = rand(1,31);
    if ($num%2 == 2) { 
        echo '变量'.$num.'为偶数';
    }else{
        echo '变量'.$num.'为奇数';
    }

3) Else if,当有多个结果时选用
    $moth = date("n");
    $today = date("j");
    if($today >= 1 and $today <=10) {
        echo '今天是'.$moth.'月'.$today.'日上旬';
    }elseif ($today>10 and $today <= 20){
       echo '今天是'.$moth.'月'.$today.'日中旬';
    }else{
        echo '今天是'.$moth.'月'.$today.'日下旬';
    }

4) Switch...Case…… default多重判断,依次判断表达式的值和那个case后相同就执行那个,都不相同执行default:
setlocale(LC_TIME,"chs");
$weekday = strftime("%A");
switch($weekday){
    case "星期一":
        echo "今天是".$weekday.",新的一周开始了";
        break;
    case "星期二":
        echo "今天是".$weekday.",保持昨天状态,继续努力";
        break;
    case "星期三":
        echo "今天是".$weekday.",新的一周开始了";
        break;   
    case "星期四":
        echo "今天是".$weekday.",保持昨天状态,继续努力";
        break;
    case "星期五":
        echo "今天是".$weekday.",保持昨天状态,继续努力";
        break;
    default:
       echo "今天休息"; 
       break;
}

4.2 循环控制语句:while/do...while/for/foreach及不用大括号的流程书写和退出循环
1)while语句 先判断再循环, 直到表达的的值为假退出
 $num=1;
 $str="10以内的偶数为:";
 while($num<=10){
  if($num % 2 == 0 ) {
        $str .= $num. " "  
  }
  $num++;
 }
 echo $str;
2)do...while 同while,比前者多循环一次, 先执行再判断,比while多执行一次
 $num = 1;
 while($num != 1) {
  echo "不会看到";
 }
 do{
  echo "会看到";
 }while($num != 1);
3)for语句,  最复杂的循环 三个表达式
语法:
For (expression1; expression2; expression3) { 
//第一次无条对表达式1取值,每次循环判断表达式2值是否为真,为真执行,不为真跳出循环,每次循环后执行表达式3
  statment;
}
 $num=1;
 for($i = 1;$i <= 100;$i++) {
   $sum *= $i;
 }
 echo $num;
 
4) Foreach语句,PHP4.0以上新增,只能用于数组,5.0中增加对象支持 ,语法:
foreach (array_expression as $value)   //语句作用1,遍历数组将数组中值赋给$value
 statement;
或
Foreach (array_expression as $key => $value)  //作用2,遍历数组每次将下标赋给$key,值赋给$value
 statement;
<?php
 $arr = array("we","are","the","best","team","!"); //声明数组
 if (is_array($arr) == true) {   //is_array是判断是否数组的函数
  foreach($arr as $key => $value) {
   echo $key." = ".$value."<br>";
  }
 }else{
  echo "不是数组,不能使用foreach语句";
 }
?> 
5) 另一种流程控制的书写模式
当一页面有过多的大括{},查找匹配很头痛,所以所有流程语句中可以使用冒号:代替左括号,用endif/endwhile/endfor/endforeach/endswitch来代替右括号
 $ss = 2;
 $max = 1000;
 $arr = array();
 echo $max."以内的数组为:";
 while($ss < $max): 
  $boo = false;
  foreach($arr as $value):
   if($ss % $value == 0):
    $boo =true;
    break;
   endif;
  endforeach;
  if(!$boo):
   echo $ss." ";
   $arr[count($arr)] = $ss;
  endif;
  $ss++;
 endwhile; 
6)跳出循环的几种方式
 break; //用以跳出循环
 break $num; //指定跳出几重循环
 continue; //不如break强大,只能终止本次循环
while(true){
 $tmp = rand(1,20);
 echo $tmp." ";
 if($tmp == 10) {
  echo "<p>变量等于10,终止循环。";
  break; 
 }
}