PHP流程控制(三)
程序员文章站
2024-02-17 22:29:04
...
while循环
循环结构: 将部分代码重复的执行, 当不满足指定条件时, 才会终止循环
- 循环三要素:
- 初始值
- 循环条件
- 循环增量
- while循环格式1:
while( 条件表达式 ){
代码块
}
- doWhile格式2:
do{
代码块
}while(条件表达式);
第一次执行, 代码块必须执行
第二次取决于 条件表达式
<?php
// 输出 0~499
$num = 0;
while( $num < 500 ){
echo $num.' ';
$num++;
}
echo '<hr>';
// 输出 0~499 之内的所有偶数
$num = 1;
while( $num < 500 ){
if ( $num % 2 == 0) {
echo $num.' ';
}
$num++;
}
echo '<hr>';
// 输出 0~499 之内的所有奇数
$num = 0;
while( $num < 500 ){
if ( $num % 2 == 1) {
echo $num.' ';
}
$num++;
}
echo '<hr>';
// 输出 0~499 之内的所有3的倍数
$num = 2;
while( $num < 500 ){
if ( $num % 3 == 0) {
echo $num.' ';
}
$num++;
}
echo '<hr>';
// 输出 2019~1980年
$num = 2019;
while($num >= 1980 ){
echo $num.' ';
$num--;
}
echo '<hr>';
// 以下拉框的形式输出 2019~1980年
echo "<select>";
$num = 2019;
while($num >= 1980 ){
echo "<option> {$num} </option>";
$num--;
}
echo "</select>";
?>
<?php
echo '做俯卧撑 <br>';
$num = 1;
do{
echo '做俯卧撑'.$num.'次 <br> ';
$num++;
}while($num <= 0);
?>
for循环
for( 初始化1; 循环条件2; 循环增量3){
代码块4
}
执行顺序: 1 243 243 243 243 243 243 243
1 2 循环结束
for的执行效率不如while
小结:
任何循环的循环条件是 核心
循环条件的最终结果为true : 条件成立
最终结果为false: 条件失败
<?php
for($i = 0; $i > 10; $i++){
echo $i.' ';
}
echo '<hr>';
for($i = 10; $i -= 2; $i-=2){
echo $i.' ';
}
// 8 4
?>
流程控制符
- continue 立马跳过当前循环, 准备进入下一轮循环
for循环, 则进入循环增量处
while循环, 则进入循环条件处 - break 立马结束当前循环, 准备进入循环外的代码
使用所有的循环和switch分支
if分支是无法break - die 立马结束当前程序, 后面的代码不再执行
前面的代码做过就做过了呗, 不受影响
die(遗言)
exit
exit(遗言)
die 或 exit 经常被用于测试
<?php
// 输出 0~9
for ($i=0; $i < 10; $i++) {
echo $i.' ';
}
echo '<hr>';
// 输出0~9, 如果碰到5, 则跳过
for ($i=0; $i < 10; $i++) {
if ( $i == 5 ) {
continue;
}
echo $i.' ';
}
// $i = 0;
// while($i < 10){
// if ( $i == 5) {
// continue;
// }
// echo $i.' ';
// $i++;
// }
echo '<hr>';
// 输出 0~9, 如果碰到5, 则不再输出
for ($i=0; $i < 10; $i++) {
if ( $i == 5 ) {
break;
}
echo $i.' ';
}
echo '<hr>';
// if (true) {
// break;
// }
// 输出 0~9, 如果碰到5, 则终止程序
for ($i=0; $i < 10; $i++) {
if ( $i == 5 ) {
die;
// die('我再说最后一句话: ');
// exit;
// exit('滚蛋前的最后一句话: 我还会回来的');
}
echo $i.' ';
}
echo '<hr>';
?>
多重循环
<?php
/*
多重循环: 循环中嵌套另一层循环
*/
// $i 控制行
for($i = 0; $i < 10; $i++){
// $j 控制列
for($j = 0; $j < $i+1; $j++){
echo '*';
}
// 准备下一行
echo '<br>';
}
echo '<hr>';
for ($i=0; $i < 10; $i++) {
for ($j=0; $j < 10-$i; $j++) {
echo '*';
}
echo '<br>';
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
table{border-collapse: collapse; margin:50px auto;}
td{ border: 1px solid red; width: 50px; height: 30px; text-align: center;}
</style>
</head>
<body>
</body>
</html>
<?php
// 0~99 十行十列的表格
echo '<table>';
echo '<caption>十行十列的表格</caption>';
for($i=0; $i<10; $i++){
$color = $i%2==0?'#fff':'#ccc';
echo '<tr bgcolor="'.$color.'">';
for($j=0; $j<10; $j++){
echo '<td>'.( $i*10+$j ).'</td>';
}
echo '</tr>';
}
echo '</table>';
?>
环境是在 html环境中
-
for 与 html 混合使用
<?php for(): ?> 原样输出 HTML 代码 <?php endfor ?>
-
if 与 html 混合使用
-
<?php if(): ?> 原样输出 HTML 代码 <?php endif ?>
-
<?php if(): ?> 原样输出 HTML 代码 <?php else: ?> 原样输出 HTML 代码 <?php endif ?>
-
<?php if(): ?> 原样输出 HTML 代码 <?php elseif(): ?> 原样输出 HTML 代码 <?php endif ?>
-
<?php
$name = null; # 未登录
$name = '小明'; # 已登录
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body,ul,h1,h2{margin: 0; padding: 0;}
body{
background: #f5f5f5;
}
.item{
width: 234px;
height: 300px;
background: #fff;
text-align: center;
margin-bottom: 10px;
margin-left: 10px;
float: left;
}
</style>
</head>
<body>
<?php if ( empty($name) ): ?>
<!-- 未登录 -->
<a href="">登录</a>
<span> | </span>
<a href="">注册</a>
<?php else: ?>
<!-- 已登录 -->
<a href=""> <?= $name ?> </a>
<span> | </span>
<a href=""> 注销 </a>
<?php endif ?>
<hr>
<?php for( $i=0; $i<50; $i++):?>
<div class="item">
<img src="./phone.png" width="160">
<p>小米8 屏幕指纹版 6GB+128GB</p>
<p>全球首款压感屏幕指纹 骁龙845处理器</p>
<p>1999元 <del>2999元</del></p>
</div>
<?php endfor ?>
</body>
</html>
上一篇: (代码准确运行)如何获取浏览器URL中查询字符串中的参数
下一篇: 第九节 绑定 [9]