PHP学习(三)(计算机基础知识,流程控制)
计算机码
计算机码:计算机在实际存储数据的时候,采用的编码规则(二进制规则)
计算机码:原码、反码和补码,数值本身最左边一位是用来充当符号位:正数为0,负数为1
原码:数据本身从十进制转换成二进制的结果
反码:针对负数,符号位不变,其他位取反
补码:针对负数,反码加1
注意:
- 系统进行任何运算的时候都是使用的补码
- 运算结束之后都必须转换成原码才是最终要显示的数据
位运算符
位运算:取出计算机中最小的单位(位bit)进行运算
&:按位与,两个位都为1,结果为1,否则为0
|:按位或,两个有一个为1,结果为1
~:按位非,一个位如果为1则变为0,否则反之
^:按位异或,两个相同则为0,不同则为1
<<:按位左移,整个位(32位),向左移动一位
>>:按位右移,整个位向右移动一位,左边补符号位对应内容(正数补0,负数补1)
运算符的优先级
运算符的优先级:在多种运算符同时存在的时候,如何结合运算
流程控制
流程控制:代码执行的方向
控制分类
顺序结构:代码从上往下,顺序执行(最基本结构)
分支结构:给定一个条件,同时有多种可执行代码(块),然后会根据条件执行某一段代码
循环结构:在某个条件控制范围内,指定代码(块)可以重复执行
顺序结构
最基本结构,所有代码都是从上到下依次执行
分支结构
在PHP中主要有两种:if分支和switch分支
if分支:给定一个条件,同时为该条件设置多种(两种)情况,然后通过条件判断来实现具体的执行段
//基本语法
//最简if代码
if(条件表达式){
//满足条件所要执行的代码
}
//基础if代码
if(条件表达式){
//满足条件所要执行的代码
}else{
//不满足条件所要执行的代码
}
//复杂的if代码
if(条件表达式1){
//满足条件表达式1的代码段
}elseif(条件表达式2){
//满足条件表达式2的代码段
}
…………
else{
//都不满足所要执行的代码段
}
//注意:如果条件特别多才会采用复合if结构
//1、如果条件比较单一(同一个条件),会采用elseif复合形式
//2、如果判断条件不一致,建议使用嵌套语法(不宜有太多层嵌套:影响代码的美观)
//if分支,适用于所有的条件判断(分支结构)
switch分支:有一组情形存在,通过一个条件,通常有多个值,但是每个值都会有不一样的代码要执行
switch判断方式:是将条件放到分支结构内部判断
//switch基本语法
switch(条件表达式){
//所有条件判断,逐个进行
case 值1: //当前条件表达式的结果与值1相等(==)
要执行的代码段;
break; //在switch中,如果条件匹配成功,那么系统就不会再次匹配条件,会自动顺序执行向下的所有代码(case代码代码除外),需要中断执行,break表示中断case匹配。
case 值2:
要执行的代码段;
…………
default: //类似else的语句,当所有的case都不匹配时,默认执行default中的代码
//要执行的代码
}
if和switch的选择
- if能做所有的分支结构事情
- switch处理的是条件比较多,同时比较单一,而且是固定值匹配的分支结构
循环结构
循环结构:代码段在一定的控制下,可以多次执行
在PHP中循环结构有以下几种:
- for循环:通过条件、起始和终止判断执行
- while循环:通过判断条件终止
- do-while循环:和while差不多
- foreach循环-----专门针对数组
for循环
//for的基本语法
for(条件表达式1;条件表达式2;条件表达式3){
//条件表达式1:定义初始化条件,可以有多个赋值语句存在,使用逗号分隔即可
//条件表达式2:边界判定,限定循环执行的次数
//条件表达式3:用来执行条件的变化
//循环体
}
//for循环执行原理
//1、执行条件表达式1:定义初始化条件(执行一次)
//2、执行条件表达式2:判断条件(N次)
//2.1、满足条件:执行循环体
//2.2、不满足条件:循环结束
//3、执行循环体(N次)
//4、执行条件表达式3:循环变量变化(N次)
//5、执行条件表达式2:判断条件(N次)
//6、重复执行3-4-2步骤:直到第二步不满足条件结束循环
while循环
//while的基本语法
条件初始化
while(条件表达式){
//条件表达式就是判断边界
循环体;
条件表达式变化;
}
for与while的选择
- 如果是基于固定已知条件(数值而且是有规律的变化),使用for循环
- while可以做灵活的条件判定(while使用的比较多)
do-while循环
do-while:看着很像while,while首先进行判定然后执行循环体,有可能出现第一次就条件不满足,那么就会直接失败(循环体一次都不执行)。do-while就是先干了再说(执行循环体),后判断条件。(至少会执行一次循环体)
//do-while的基本语法
do{
循环体;
}while(条件表达式);
循环控制:在循环内部对循环本身进行控制
中断控制:重新开始循环,循环体中还有其他内容,也再执行
continue层级;//默认是1
终止控制:循环直接结束
break层级://默认是1
当使用嵌套循环时,里面的循环使用continue时,终止里面的循环,继续外面的循环,而break是将所有的循环打破,不再执行它所嵌套的所有循环