循环相关的语句:break
表示结束当前的for ,while,do while,switch循环
快速入门
<?php
for($i=0;$i<13;$i++){
echo '$i='.$i."<br/>";
if($i==10){
break;
}
}
?>
结果:
$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<br/>";
break;
case 10:
echo "quit at 10<br/>";
break 2;
default:
break;
}
}
echo '$i='.$i;
?>
图解:
运行结果:
quit at 5
quit at 10
$i=10
从上面案例看出:我们得:
1,break语句,默认跳出一层
2,break语句后面带的数字,不能超过实际可跳出的循环层数
循环控制语句:continue
基本概念:continue用于结束本次循环剩余代码,从新开始新的一次循环
(如果条件为真,就继续执行),continue后面也可以带数字,表示从第几次循环重新开始
快速入门:
代码:
<?php
for($i=0;$i<13;$i++){
if($i==3){
continue;
}
echo '$i='.$i."<br/>";
}
echo "hello";
?>
图解:
运行结果:
$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<2;$i++){
for($j=1;$j<4;$j++){
if($j==2){
continue 2;
}
echo '$i='.$i.'$j='.$j."<br/>";
}
}
echo "测试";
?>
结果:
$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<=$i;$j++){
echo'*';
}
echo'<br/>';
}
运行结果:
2,第二步实现金子塔:
<?php
//打印出整个金字塔
//如果打印3层
// * ->1 2个空格 1个* (1-1)*2+1=1
// *** ->2 1个空格 3个* (2-1)*2+1=3
// ***** ->3 0个空格 5个* (3-1)*2+1=5
$n=10;
for($i=1;$i<=$n;$i++){
//在答应*前,先打印空格
for($k=1;$k<=$n-$i;$k++){
echo " ";
}
//内层控制每层*的个数
for($j=1;$j<=($i-1)*2+1;$j++){
echo "*";
}echo '<br/>';
}
?>
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
3,第三步实现
分析:第一层和最后一层不需变化的
- <?php
- $n=10;
- for($i=1;$i<=$n;$i++){
- //在答应*前,先打印空格
- for($k=1;$k<=$n-$i;$k++){
- echo " ";
- }
- //内层控制每层*的个数
- for($j=1;$j<=($i-1)*2+1;$j++){
- //如果是第一层,和最后一层
- if($i==1||$i==$n){
- echo "*";
- }else{
- if($j==1||$j==($i-1)*2+1){
- echo "*";
- }else{
- echo " ";
- }
- }
- }echo '<br/>';
- }
- ?>
案例 2:个人计算 器
第一种方式实现【基本】:
代码:
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);
?>
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 "操作符有误";
}
}
}
?>