PHP 4.0 講義 PHP介紹 1 2 3 4 5 6 7 8 9 A B C D
指令敘述 4.1 : for ( 起始運算式;測試條件式;遞增運算式 )
指令說明:for 迴圈敘述, 若測試條件式符合, 則執行{ }中的程式區段; 每執行完一次{ }中的程式區段, 則執行一次遞增運算式
用法:
for(起始運算式;測試條件式;遞增運算式)
{
程式碼;
};
例:
for($i=0 ; $i<10 ; $i=$i+1)
{
程式碼;
...
};
完整的例子4-1:重覆印10個 Hello
<?php
for($i=0;$i<10;$i=$i+1)
{
echo "Hello <br>";
}; /*重覆印10個 Hello*/
?>
完整的例子4-2:印 0 1 2 3 … 9
<?php
for($i=0;$i<10;$i=$i+1)
{
echo $i,"<br>";
}; /*印 0 1 2 3 …9 */
?>
千萬小心:無窮迴圈
<?php
for($i=0;$i<10;$i=$i - 1)
{
echo $i,"<br>";
}; /* 因為 i=0、-1、-2、…… 都小於 10 ,所以無法停止*/
?>
練習4-1 : 請印出 10、9、8、 …、1(每行一個數字)
練習4-2 : 請印出 1、3、5、 …、11 (每行一個數字)
練習4-3 : 請印出 10、8、6、 …、0、-2、-4 (每行一個數字)
完整的例子4-3:請計算出由 1+2+3+……+10 = ?
<?php $sum = 0; for($i=1;$i<=10;$i=$i+1) { $sum = $sum + $i; echo " i = ",$i," sum = ",$sum,"<br>"; }; echo "累加的結果為",$sum; ?> |
i = 1 sum = 1 i = 2 sum = 3 i = 3 sum = 6 i = 4 sum = 10 i = 5 sum = 15 i = 6 sum = 21 i = 7 sum = 28 i = 8 sum = 36 i = 9 sum = 45 i = 10 sum = 55 累加的結果為55 |
練習4-4 : 請計算出由 1+4+7+……+31 = ?
練習4-5 : 使用者輸入幾隻狗, 程式就印出所輸入數量的狗的圖片
練習4-6 : 請寫出萬用累加程式, 使用者可以由畫面中輸入 累加的起始值, 終止值, 差值 , 然後按下計算鈕, 可以算出所要的答案 解答
練習4-7 : (迴圈版)請寫出複利計算程式, 使用者輸入本金、利率、年數, 程式算出利息
觀念 4.2 : for迴圈中有另一個for迴圈(程式區段中有程式區段 ,{ }中可以有{ })
說明:外圈每做一次, 內圈就要重新做全部的次數敘述, 例如: 外圈3次, 內圈由2次, 則內圈的程式區段會執行 6 次
用法:
for(起始運算式;測試條件式;遞增運算式)
{
程式碼;
for(起始運算式;測試條件式;遞增運算式)
{
程式碼;
};
程式碼;
};
例:
<?php
for($i=1;$i<=3;$i=$i+1)
{
echo "A: i=",$i,"<br>";
for($j=4;$j<=5;$j=$j+1)
{
echo "B: i=",$i," j=",$j,"<br>";
};
echo "C: i=",$i,"<p>";
};
?> /*這種觀念叫雙重迴圈*/
完整的例子4-4:外圈由1~3, 3次; 內圈由4~5, 2次
<?php for($i=1;$i<=3;$i=$i+1) { echo "A: i=",$i,"<br>"; for($j=4;$j<=5;$j=$j+1) { echo "B: i=",$i," j=",$j,"<br>"; }; echo "C: i=",$i,"<p>"; }; ?> |
A: i=1 B: i=1 j=4 B: i=1 j=5 C: i=1 A: i=2 A: i=3 |
完整的例子4-5:印出九九乘法表
<?php for($i=1;$i<=9;$i=$i+1) { for($j=1;$j<=9;$j=$j+1) { echo $j,"*",$i,"=",$j*$i," "; }; echo "<br>"; }; ?> |
1*1=1 2*1=2 3*1=3 4*1=4 5*1=5 6*1=6 7*1=7 8*1=8 9*1=9
1*2=2 2*2=4 3*2=6 4*2=8 5*2=10 6*2=12 7*2=14 8*2=16 9*2=18 1*3=3 2*3=6 3*3=9 4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=27 1*4=4 2*4=8 3*4=12 4*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=36 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 7*6=42 8*6=48 9*6=54 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 8*7=56 9*7=63 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 9*8=72 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 |
練習4-8 : 請將2顆骰子所能擲出的所有點數狀況,都印出來 (例: 1+1=2, 1+2=3, ......)
練習4-9 : 請將3顆骰子所能擲出的所有點數狀況,都印出來 (例: 1+1+1=3, 1+1+2=4, ......)
練習4-10 : 使用者輸入一行幾隻狗及共幾行, 程式就印出所輸入數量的狗的圖片
觀念 4.3 : 迴圈中可以有判斷敘述
說明:迴圈中每做一次, 判斷敘述就要重新判斷一次
用法:
for(起始運算式;測試條件式;遞增運算式)
{
程式碼;
if(條件式)
{
程式碼; /* 符合條件式時執行 */
}
程式碼;
};
例:
<?php
for($i=1;$i<=500;$i=$i+1)
{
if($i%11==2 and $i%7==3)
{
echo $i,"<br>";
};
};
?>
完整的例子4-6:試寫一個程式, 求出 被 11 除餘 2 , 而且被 7 除餘 3 的最小的正整數
<?php for($i=1;$i<=500;$i=$i+1) { if($i%11==2 and $i%7==3) { echo $i,"<br>"; }; }; ?> |
24 101 178 255 332 409 486 |
練習4-11 : 請算出 23716 的平方根
練習4-12 : 請找出 1 ~ 1000 中 有 3 , 5 , 7 因數的整數
練習4-13 : 使用者輸入一行幾隻狗、共幾行及選擇長毛狗或短毛狗, 程式就印出所輸入數量的狗的圖片