Day14 流程控制之回圈

循环 -- 就是让电脑重复执行一件事!
而回圈简单来说就是在条件符合的情况下,重复执行某段程序码。
常用的loop指令有:while、for、do while等。
大部分的分支和回圈结构都是由布林值(boolean)判断式来控制的,也就是true或false。

回圈控制

『回圈控制』就是用来处理需要重覆执行的程序码,回圈都可以经过适当的修改换个逻辑来彼此转换,因此要使用哪一个方式来撰写回圈控制并没有一定的标准,自己用习惯,程序设计人员认为写得出要的东西即可。

  • while
  • do while
  • for

1. while循环

注意:书写循环结构时一般都需要自增或者自减条件。

while(条件表达的){
      //循环体
      php代码
      [自增或者自减得条件]
      }

例子:

<?php
// 1. 输出1~100的累加和
// 1 + 2 + 3 + 4 + 5 …… 100 = 5050
$total = 0;
$num = 1;
while ($num <= 100) {
    //求1-100的累加和
    //$total += $num;
    $total = $total + $num;
    $num++;
}

echo $total;

2. do...while循环

首先会执行一次代码,然後检查条件,如果指定条件为真,则重复循环表达式的值,注意是在每次循环结束时检查而不是开始时~

    - do{
      循环体
      [自增自减条件]
      }while(条件表达式);
  • do...while 和 while循环的区别
    1. while型循环的每一次循环体的执行都要依据while条件表达式的结果进行约束
    2. do...while除了第一次之外,剩下每次的循环体的执行都要受while条件表达式结果的约束
<?php
//循环 
//01 02 03 04 05 06 07 08 09 10
//11 12 13					 20

//41 42						 50

$num = 1;
do {
    if ($num < 10) {
        //加前导0
        echo '0' . $num . ' ';
    } else {
        //正常输出
        echo $num . ' ';
    }

    //判断10的倍数换行
    if ($num % 10 == 0) {
        echo '<br/>';
    }
    $num++;
} while ($num <= 50);

for循环

计数型循环(效率高),从开始就知道自己要循环多少次

   for(表达式1;表达式2,表达式3){
       循环体(PHP语句)
   }
表达式1 表示初始化变量
表达式2 表示循环退出的条件(条件表达式)
表达式3 自增自减条件
  • for循环执行格式

    1. 执行表达式1 对变量初始化。
    2. 执行表达式2 判断是否符合循环条件。
    3. 如果表达式2 符合执行循环的条件,那麽就执行{}内的代码(循环体)
    4. 执行表达式3 自增或者自减条件
    5. 执行表达式2 判断是否符合循环条件
  • for循环和while循环的区别:

    1. 类型问题
      • 计数型循环:for循环
      • 布尔值循环:while循环、do...while循环以及foreach循环
    2. 效率问题
      • for循环要高於while循环,for循环属於计数型循环,而while循环数bool型循环
	for($i = 0;$i < 10; $i++){
		echo $i;
	}

之前写的小练习,用到一点html、css,不过不难,可以看一下,还有之後会介绍到的函数~

<?php
//制作10行10列的表格,每行随机变换颜色 每秒钟自动变换颜色
echo '<meta http-equiv="refresh" content="1" />';
echo '<table border="1" align="center" width="800">';
for ($tr = 0; $tr < 10; $tr++) {
    echo '<tr style="background:rgb('
        . mt_rand(0, 255) . ',' . mt_rand(0, 255) . ',' . mt_rand(0, 255) . ')">';
    for ($td = 0; $td < 10; $td++) {
        echo '<td>' . $tr . $td . '</td>';
    }
    echo '</tr>';
}
echo '</table>';

流程控制的其它语句

  1. break语句
  • 作用:跳出流程控制区块,在任何循环结构中用break终止分支结构、循环操作
  • 注意:break後面可以跟数值参数,break 1 表示的意思跟break一样。如果在循环中设置break 2 表示用来终止两层循环~

例子:

	for($br = 0; $br < 10; $br ++){
		echo $br.'<br/>';
		if($br == 4){
			break 1;
		}

	}


这边本来要到9,但因为等於4我就break跳出回圈,所以就没有继续输出罗~

  1. continue语句
  • 作用:不执行接下来在区块内的程序码,直接跳回区块的开头再执行一次,在循环结构中用来终止本次循环,开始下一次循环。
  • 注意:continue後面可以跟数值参数,continue 1 表示的意思和continue一样,如果在循环中设置 continue 2 表示跳转到外层继续循环
<?php
// continue 

for ($i = 0; $i < 10; $i++) {

	if ($i == 4) {
		continue;
	}
	echo $i . '<br/>'; // 0  1 2 3 5
}

echo '<hr>';

for ($i = 0; $i < 10; $i++) {
	for ($j = 0; $j < 10; $j++) {
		if ($j == 4) {
			continue 2;
		}
		echo $j . '<br/>';
	}
	echo '<br/>';
}

可以自己跑一下~~ 看一下结果,太长了我就不截图了=ˇ=

  1. goto语句
  • goto 操作符用来跳转到程序中的另一个位置,该目标位置可以用目标名称加上冒号来标记,而跳转指令是goto 之後接上目标位置的标记即可。
    简单来说,可以在离开控制区块後,直接跳到某个标记处开始往下执行
  • PHP中的goto 有一定的限制,目标位置只能位於同一个文件和作用域、也就是说无法跳出一个函数或者类,也无法跳入到另一个函数。也无法跳入到任何的循环或者switch结构中,可以跳出循环或者switch,通常的用法是用goto代替多层的break;

PS.了解就好了~~ 比较少用,老实说,我也不太会 (´−`) ンー

Day14 Winnie的聊天室

耶耶耶,今天介绍完了~~ 流程控制到一个段落,然後我发现,我前面的array数组单元,没有介绍到 foreach(), foreach()回圈用於遍历阵列中的每个元素www
赶快在闲聊中补!起!来!

  • count() 统计数组的长度(元素个数)
    参数:要统计数组长度的数组变量
    返回值:返回该数组的元素个数
  • 遍历数组方式:数组专用格式foreach
   - 格式1: 遍历数组 同时获取键和值
     foreach(数组变量 as 键变量=>值变量){
       循环体
     }
   - 格式2: 遍历数组 只获取值
     foreach(数组变量 as 值变量){
       循环体
     }

例子:

<?php
//关联数组
$arr = array('id' => 1, 'name' => 'Winnie', 'age' => 'unknow', 'sex' => 1);
var_dump($arr);

//方式1
// $len = count($arr);
// for($i = 0; $i < $len; $i ++){
// 	var_dump($i);
// 	echo $arr[$i];
// }

//方式2
foreach ($arr as $k => $v) {
    var_dump($k); //出来的是key
    var_dump($v); //出来的是value,也就是winnie、unknow这些值~~
}

耶耶耶~~ 把缺的补上了,今天的聊天真充实阿!٩(✿∂‿∂✿)۶


<<:  Flutter体验 Day 21-Http

>>:  资讯安全

[区块链&DAPP介绍 Day26] Dapp 实战 投票系统 - 2

延续昨天没做完的议题,今天来把 js & html 补完,让变成一个完整的 Dapp 首先 ...

[Day3] 引擎简介 - RPG Maker 引入插件

在工具列中的工具选项,找到插件管理器 点下去後跳出一个视窗 在这里就可以引入你想引入的插件啦 这边有...

克服拖延 → 维持专心 → 深度专注

昨天介绍了正念训练 (mindfulness practice),这是注意力控制的基本训练,直接强化...

认识强大的Python套件:NumPy

昨天已经学会要如何呼叫套件了,今天就让我们来学习套件里的语法运用吧! 首先先呼叫我们的NumPy套件...

第45天~

这个得上一篇:https://ithelp.ithome.com.tw/articles/10258...