在之前我们已经使用过if判断语句
基本语法,不能有半点马乎,完全是语法规范规定的,不这么写就错!
php //定义是否打赏的变量 $dashang = true; if($dashang){ exit('如果不打赏,我不写这个教程了'); } ?>
php
//定义是否打赏的变量
$dashang = true;
if($dashang){
exit('如果不打赏,我不写这个教程了');
}
?>
说明:
//if单行判断 if(布尔值判断) 只写一句话; 后续代码 //if多行判断 --推荐写法,不要省略大括号 if(布尔值判断){ 可以写多句话; } 后续代码
//if单行判断
if(布尔值判断)
只写一句话;
后续代码
//if多行判断 --推荐写法,不要省略大括号
if(布尔值判断){
可以写多句话;
小设计:计算机
type="text" name="num1"> name="fh"> value="jia"> + value="jian"> - value="c"> x value="chu"> / value="qy"> % type="text" name="num2"> type="submit" value="运算" />
type="text" name="num1">
name="fh">
value="jia"> +
value="jian"> -
value="c"> x
value="chu"> /
value="qy"> %
type="text" name="num2">
type="submit" value="运算" />
php $num1 = $_GET['num1']; $num2 = $_GET['num2']; $fh = $_GET['fh']; if(!is_numeric($num1) || !is_numeric($num2)){ echo '请输入数值类型'; } if($fh == 'jia'){ echo $num1 . '+' . $num2 . '=' . ($num1+$num2); } if($fh=='jian'){ echo $num1 . '-' . $num2 . '=' . ($num1-$num2); } if($fh=='c'){ echo $num1 . 'x' . $num2 . '=' . ($num1*$num2); } if($fh=='chu'){ echo $num1 . '/' . $num2 . '=' . ($num1/$num2); } if($fh=='qy'){ echo $num1 . '%' . $num2 . '=' . ($num1%$num2); } ?>
$num1 = $_GET['num1'];
$num2 = $_GET['num2'];
$fh = $_GET['fh'];
if(!is_numeric($num1) || !is_numeric($num2)){
echo '请输入数值类型';
if($fh == 'jia'){
echo $num1 . '+' . $num2 . '=' . ($num1+$num2);
if($fh=='jian'){
echo $num1 . '-' . $num2 . '=' . ($num1-$num2);
if($fh=='c'){
echo $num1 . 'x' . $num2 . '=' . ($num1*$num2);
if($fh=='chu'){
echo $num1 . '/' . $num2 . '=' . ($num1/$num2);
if($fh=='qy'){
echo $num1 . '%' . $num2 . '=' . ($num1%$num2);
我知道使用JS也可以完成,但是我们要只要练习的目的
课堂练习作业: 写一个平年、闰年计算器。写一个form表单,通过get将年份给传来过来,判断传进来的年份是否为数值类型。并且要求,如果是闰年就提示这是闰年,如果是平年就提示这一年是平年。
平年闰年规则:年份能被4整除,但是不能被100整除。 或者能被400整除,即为闰年,其他情况全为平年
## 嵌套if…else…elseif结构
基本上到这里都是举示例为成绩
php if(判断语句1){ 执行语句体1 }elseif(判断语句2){ 执行语句体2 }else if(判断语句n){ 执行语句体n }else{ 最后的else语句可选 } //后续代码 ?>
if(判断语句1){
执行语句体1
}elseif(判断语句2){
执行语句体2
}else if(判断语句n){
执行语句体n
}else{
最后的else语句可选
//后续代码
上述结构表示:
注:elseif()也可以写成else if()[推荐写法]
代码执行流程图
作业: 写一个网页grade.html,向panduan.php页面以post方式提交分数段.
不是一个数值类型或者小于0 请输入正确的分数
## if语句多种嵌套 在if语句中可以嵌套一个或多个if语句,以实现对多个参数的判断,这就是if语句的多种嵌套。其结构形式如下:
php if(判断1){ if(判断2){ 代码段 1 }else{ 代码段2 } }else{ if(判断3){ 代码段3 }else{ 代码段4 } } ?>
if(判断1){
if(判断2){
代码段 1
代码段2
if(判断3){
代码段3
代码段4
流程图
注意: 我们在代码段1,2,3,4中可以再加入判断。根据实际情况还可以再加入嵌套 注意缩进,缩进的作用只是使代码富有层次感,美观易读,对目标代码的生成毫无影响。
注意:
技巧:使用大括号,大括号,大括号,让代码清晰
技巧:
php switch(变量){ //字符串,整型 case 具体值: 执行代码; break; case 具体值2: 执行代码2; break; case 具体值3: 执行代码3; break; default: } ?>
switch(变量){ //字符串,整型
case 具体值:
执行代码;
break;
case 具体值2:
执行代码2;
case 具体值3:
执行代码3;
default:
说明
1\. 上面的break是可选的 2\. 上面的default也是可选的 3\. 不要在case 后面写成分号,后面是冒号: 4\. 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30) 5\. switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
1\. 上面的break是可选的
2\. 上面的default也是可选的
3\. 不要在case 后面写成分号,后面是冒号:
4\. 不要在case后面写判断区间,如($foo > 20 或者 $foo == 30)
5\. switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
php //定义出行工具 $tool=rand(1,6); switch($tool){ case 1: echo '司机开车'; break; case 2: echo '民航'; break; case 3: echo '自己家的专机'; break; case 4: echo '火车动车'; break; case 5: echo '骑马'; break; case 6: echo '游轮'; break; } ?> ``` ---------- # 循环语句的使用 ## 语法 ```php php //定义需要往返的次数,老外喜欢从0开始计数,我们也从0开始计 $count = 0; //while后面接布尔值判断,为真执行,为假停止 //$count 小于3的时候执行,也就是$count为0至3的时候执行 //如果$count不小于3了,循环停止执行后续的代码 //循环开始处 while($count < 3){ echo '我是胖先生,休息的第' . $count .'天'; //每次执行让$count+1,这样的话,就不会产生$count永远小于3的情况了 $count++; //循环结束 } echo '后续代码'; ?>
//定义出行工具
$tool=rand(1,6);
switch($tool){
case 1:
echo '司机开车';
case 2:
echo '民航';
case 3:
echo '自己家的专机';
case 4:
echo '火车动车';
case 5:
echo '骑马';
case 6:
echo '游轮';
```
----------
# 循环语句的使用
## 语法
```php
//定义需要往返的次数,老外喜欢从0开始计数,我们也从0开始计
$count = 0;
//while后面接布尔值判断,为真执行,为假停止
//$count 小于3的时候执行,也就是$count为0至3的时候执行
//如果$count不小于3了,循环停止执行后续的代码
//循环开始处
while($count < 3){
echo '我是胖先生,休息的第' . $count .'天';
//每次执行让$count+1,这样的话,就不会产生$count永远小于3的情况了
$count++;
//循环结束
echo '后续代码';
# while循环
while是一个布尔型循环,while(布尔判断)的值为true就执行大括号括起来的代码。如果为假就停出去,执行后续代码。
完成效果图如下:
第一步: 完成100个单元格的输出
第二步: 完成10行的操作
第三步: 设置斑马线
完整代码:
php $i=0; echo ''; while($i<100){ //0 - 9 为一行 //10 -19 为一行 //因此,每一行都能够被10求默,如为为10的时候,应该显示行开始的标签 if($i%10 == 0){ if($i%2==0){ echo ''; }else{ echo ''; } } echo ''.$i.''; $i++; //同理,每一行结束是不是应该有一个结束标签呢? if($i%10==0){ echo ''; } } echo ''; ?>
$i=0;
echo ''; while($i<100){ //0 - 9 为一行 //10 -19 为一行 //因此,每一行都能够被10求默,如为为10的时候,应该显示行开始的标签 if($i%10 == 0){ if($i%2==0){ echo ''; }else{ echo ''; } } echo ''.$i.''; $i++; //同理,每一行结束是不是应该有一个结束标签呢? if($i%10==0){ echo ''; } } echo '';
while($i<100){
//0 - 9 为一行
//10 -19 为一行
//因此,每一行都能够被10求默,如为为10的时候,应该显示行开始的标签
if($i%10 == 0){
if($i%2==0){
echo ''; }else{ echo ''; } } echo ''.$i.''; $i++; //同理,每一行结束是不是应该有一个结束标签呢? if($i%10==0){ echo '';
echo ''; } } echo ''.$i.''; $i++; //同理,每一行结束是不是应该有一个结束标签呢?
echo ''.$i.'';
$i++;
//同理,每一行结束是不是应该有一个
if($i%10==0){
echo '
改进代码双层循环
php echo ''; $i=0; while($i<10){ echo ''; $j=0; while($j<10){ echo ''.$j.''; $j++; } echo ''; $i++; } echo ''; ?> ``` 练习题: 九九乘法表 ---------- # do...while循环的区别 do...while与while的语法结构基本一样,也是一个布尔型循环,功能也基本一样。 ## 语法 ```php do { //代码块 } while (判断);
echo ''; $i=0; while($i<10){ echo ''; $j=0; while($j<10){ echo ''.$j.''; $j++; } echo ''; $i++; } echo '';
while($i<10){
echo ''; $j=0; while($j<10){ echo ''.$j.''; $j++; } echo '';
$j=0;
while($j<10){
echo ''.$j.'';
$j++;
练习题:
九九乘法表
# do...while循环的区别
do...while与while的语法结构基本一样,也是一个布尔型循环,功能也基本一样。
do {
//代码块
} while (判断);
do…while与while的区别是,它们的值的检查时机不同。
时机不同
do-while 不论while判断是否成立,先执行一次代码代码块循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)。 然而我们之前的while循环会检查布尔判断区域,成立则执行。不成立则不执行。
php $i = 0; do { echo $i; } while ($i > 0); ?>
$i = 0;
echo $i;
} while ($i > 0);
上面代码中,$i 肯定不大于0,也执行了。
当然,你还不能理解,实在想不到应用场景也没关系,可以完全跳过此块。 do…while用的情况比较少。我们有可能用在资源处理如:文件打开等地方。
# for循环控制语句 for 循环是 PHP 中的一种计数型循环,它的语法比较数活多变。这是一个必须要掌握的知识点。 ## 语法 ``` for (表达示1; 表达示2; 表达示3){ 需要执行的代码段 }
+ 表达式1 是初始化赋值,可以同时赋值`多个代码`。 + 表达示2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。 + 表达示3 在每次循环之后被求值。 ## 代码 ```php for ($i = 1; $i <= 10; $i++) { echo '不知道是第'.$i.'次相亲,已经麻木了!'; } ?>
+ 表达式1 是初始化赋值,可以同时赋值`多个代码`。
+ 表达示2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。
+ 表达示3 在每次循环之后被求值。
## 代码
for ($i = 1; $i <= 10; $i++) {
echo '不知道是第'.$i.'次相亲,已经麻木了!';
使用For循环完成这种效果
php for ($i = 1; $i <= 10; $i++) { if($i == 4){ //待会儿换成contiune试试 break; } echo '不知道是第'.$i.'次相亲,已经麻木了!'; } echo '结束了,结束了'; ?>
if($i == 4){
//待会儿换成contiune试试
echo '结束了,结束了';
## goto语法
没有怎么用过,知道就行,了解就可以
php goto wan; echo '天王盖地虎'; wan: echo '小鸡炖蘑菇'; ?>
goto wan;
echo '天王盖地虎';
wan:
echo '小鸡炖蘑菇';
通过上例,我们发现直接显示输出了:小鸡炖蘑菇。
php for($i=0; $i<100; $i++) { echo '第'. $i .'周往返北京大连'; if($i == 17){ goto end; } } end: echo '集团公司要求停止此项'; ?>
for($i=0; $i<100; $i++) {
echo '第'. $i .'周往返北京大连';
if($i == 17){
goto end;
end:
echo '集团公司要求停止此项';
注: goto 操作符可以用来跳转到程序中的另一位置。 该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。 PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。
# declare 语法 涉及到了函数相关的知识,若你有一定的基础,可以继续下面的学习。