循环相关的语句:break

表示结束当前的for ,while,do while,switch循环

快速入门

<?php

for($i=0;$i&lt;13;$i++){

echo '$i='.$i."&lt;br/>";

if($i==10){

break;

}

}

?&gt;

php流程控制语句扩展及实战_break

php流程控制语句扩展及实战_goto_02

结果:

$i=0
$i=1
$i=2
$i=3
$i=4
$i=5
$i=6
$i=7
$i=8
$i=9
$i=10

快速入门2

 

代码:

<?php

$i=0;

while(++$i){

switch($i){

case 5:

echo "quit at 5&lt;br/>";

break;

case 10:

echo "quit at 10<br/>";

break 2;

default:

break;

}

}

echo '$i='.$i;

?&gt;

图解:

php流程控制语句扩展及实战_continue_03

运行结果:

quit at 5
quit at 10
$i=10

从上面案例看出:我们得:

1,break语句,默认跳出一层

2,break语句后面带的数字,不能超过实际可跳出的循环层数

循环控制语句:continue

基本概念:continue用于结束本次循环剩余代码,从新开始新的一次循环

(如果条件为真,就继续执行),continue后面也可以带数字,表示从第几次循环重新开始

快速入门:

代码:

<?php

for($i=0;$i&lt;13;$i++){

if($i==3){

continue;

}

echo '$i='.$i."&lt;br/>";

}

echo "hello";

?&gt;

图解:

php流程控制语句扩展及实战_break_04

php流程控制语句扩展及实战_break_05

运行结果:

$i=0
$i=1
$i=2
$i=4
$i=5
$i=6
$i=7
$i=8
$i=9
$i=10
$i=11
$i=12
hello

案例2

<?php

for($i=0;$i&lt;2;$i++){

for($j=1;$j&lt;4;$j++){

if($j==2){

continue 2;

}

echo '$i='.$i.'$j='.$j."&lt;br/>";

}

}

echo "测试";

?&gt;

结果:

$i=0$j=1
$i=1$j=1

测试

goto语句

基本概念:通过goto语句可以将程序跳转指定的地方去执行

goto 标签;

标签;

语句;

快速入门:

goto a;

echo 'aa';

a:

echo 'bb';

运行结果:

bb

案例1:请使用循环控制语句,输出一个空心的菱形

 

思想:先简单实现,再难的考虑

1,第一步实现:

for($i=1;$i<=3;$i++){

for($j=1;$j&lt;=$i;$j++){

echo'*';

}

echo'&lt;br/>';

}

php流程控制语句扩展及实战_break_06

运行结果:

php流程控制语句扩展及实战_continue_07

2,第二步实现金子塔:

<?php

//打印出整个金字塔

//如果打印3层

// * ->1 2个空格 1个* (1-1)*2+1=1

// *** -&gt;2 1个空格 3个* (2-1)*2+1=3

// ***** -&gt;3 0个空格 5个* (3-1)*2+1=5

$n=10;

for($i=1;$i<=$n;$i++){

//在答应*前,先打印空格

for($k=1;$k&lt;=$n-$i;$k++){

echo "&nbsp;";

}

//内层控制每层*的个数

for($j=1;$j&lt;=($i-1)*2+1;$j++){

echo "*";

}echo '&lt;br/>';

}

?&gt;

          *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
*****************
*******************

3,第三步实现

分析:第一层和最后一层不需变化的

 

  1. <?php 
  2.       
  3.     $n=10;  
  4.     for($i=1;$i<=$n;$i++){  
  5.         //在答应*前,先打印空格  
  6.         for($k=1;$k<=$n-$i;$k++){  
  7.             echo "&nbsp;";  
  8.     }  
  9.         //内层控制每层*的个数  
  10.         for($j=1;$j<=($i-1)*2+1;$j++){  
  11.         //如果是第一层,和最后一层  
  12.         if($i==1||$i==$n){  
  13.             echo "*";  
  14.         }else{  
  15.             if($j==1||$j==($i-1)*2+1){  
  16.                 echo "*";  
  17.             }else{  
  18.                 echo "&nbsp;";  
  19.             }  
  20.         }     
  21.     }echo '<br/>';  
  22. }  
  23. ?> 

 

php流程控制语句扩展及实战_break_08 

案例 2:个人计算

 

第一种方式实现【基本】:

php流程控制语句扩展及实战_goto_09

php流程控制语句扩展及实战_金字塔_10

 

 

代码:

MyCalView.php

<html>

<head>

<title>我的计算器</title>

<script language="javascript">

function check(){

//js的内容

var num1val=document.getElementById("num1").value;

var num2val=document.getElementById("num2").value;

if(isNaN(num1val)||isNaN(num2val)){

window.alert("num1和num2必须是数");

//如果不是,就返回false,不提交

return false;

}

}

</script>

</head>

<h1>我的计算器<h1/>

<form action="result.php" method="post" onsubmit="return check()">

num1:<input type="text" id="num1" name="num1"/><br/>

num2:<input type="text" id="num2" name="num2"/><br/>

oper:

<select name="oper">

<option value="+">+</option>

<option value="-">-</option>

<option value="*">*</option>

<option value="/">/</option>

</select>

<br/>

<input type="submit" value="提交"/><br/>

</form>

<html/>

result.php

<?php

//$_REQUEST 该方法可以接受用户的post或者get请求数据

$num1=$_REQUEST['num1'];

$num2=$_REQUEST['num2'];

$oper=$_REQUEST['oper'];

$res=0;

switch($oper){

case "+":

$res=$num1+$num2;

break;

case "-":

$res=$num1-$num2;

break;

case "*":

$res=$num1*$num2;

break;

case "/";

$res=$num1/$num2;

break;

}

echo $res;

?>

第二种方式实现【用函数】:

MyCalView.php

<html>

<head>

<title>我的计算器</title>

<script language="javascript">

function check(){

//js的内容

var num1val=document.getElementById("num1").value;

var num2val=document.getElementById("num2").value;

if(isNaN(num1val)||isNaN(num2val)){

window.alert("num1和num2必须是数");

//如果不是,就返回false,不提交

return false;

}

}

</script>

</head>

<h1>我的计算器<h1/>

<form action="CalProcess.php" method="post" onsubmit="return check()">

num1:<input type="text" id="num1" name="num1"/><br/>

num2:<input type="text" id="num2" name="num2"/><br/>

oper:

<select name="oper">

<option value="+">+</option>

<option value="-">-</option>

<option value="*">*</option>

<option value="/">/</option>

</select>

<br/>

<input type="submit" value="提交"/><br/>

</form>

<html/>

CalProcess.php

<?php

require_once "OperService.class.php";

//接受三个数

if(isset($_REQUEST['num1'])){

$num1=$_REQUEST['num1'];

}

if(isset($_REQUEST['num2'])){

$num2=$_REQUEST['num2'];

}

if(isset($_REQUEST['oper'])){

$oper=$_REQUEST['oper'];

}

$operService=new OperService();

echo $operService->getResult($num1,$num2,$oper);

?&gt;

OperService.class.php

<?php

//定义了一个专门提供计算的类

class OperService{

public function getResult($num1,$num2,$oper){

switch($oper){

case "+":

return $num1+$num2;

break;

case "-":

return $num1-$num2;

break;

case "*":

return $num1*$num2;

break;

case "/":

return $num1/$num2;

break;

default:

echo "操作符有误";

}

}

}

?>