1樓:匿名使用者
我也認為是while 實現的。
執行這個試試看。
echo $a."\t執行遞迴但失敗\t";
else if($a!=1)
echo $a."\t執行遞迴\t";
elseecho $a."\t預設引數\t";
while($a<3){
echo $a."\twhile輸出。
a++;/ if($a>=3)
break;
g($a);g();
2樓:網友
a=1 進入while 顯示1 a自增,a=2
a=2 進入while 顯示2 a自增,a=3
然後遞迴。所以是while實現的,遞迴的時候a=3了。
3樓:網友
誰說你錯了,你說的是對的。
先輸出1再呼叫g($a) 在呼叫裡迴圈輸出2,再輸出2
4樓:網友
把while換成if就沒有第二個2了,說明這是由while機制引起的。
while()
如果while後邊括號內的表示式為真,那麼執行{}內的語句,然後再判斷while後邊()的表示式是否為真,如果是真,再次執行{}內的語句,直到()內的條件為假。if()
語句a如果if後邊()內為真,執行{}內語句,執行完之後執行下邊語句a。如果為假直接執行語句a
php左右值無限遞迴用在哪些地方
5樓:會吐口水的番茄
while語句中的表示式一般是關係表達或邏輯表示式,只要表示式的值為真(非0)即可繼續迴圈。
例main()
本例程式將執行n次迴圈,每執行一次,n值減1。迴圈體輸出表示式a++*2的值。該表示式等效於(a*2;a++)
2) 迴圈體如包括有乙個以上的語句,則必須用{}括起來,組成複合語句。
do-while語句。
do-while語句的一般形式為:
do語句。while(表示式);
這個迴圈與while迴圈的不同在於:它先執行迴圈中的語句,然後再判斷表示式是否為真, 如果為真則繼續迴圈;如果為假, 則終止迴圈。因此, do-while迴圈至少要執行一次迴圈語句。
其執行過程可用下圖表示。
例用do-while語句求 。
用傳統流程圖和n-s結構流程圖表示演算法,見圖:
6樓:行不行丶看自己
二分法 , 陣列的排序會用到。
php遞迴數值型別問題,求高手解答
7樓:網友
哈哈,這個問題讓我來給你解答吧。
1:變數$afilearr不設定成static型別時,他只是函式中的乙個區域性變數,當函式遞迴發生時,函式每一次執行都會產生乙個名字為$afilearr的變數,但是他們在記憶體棧區存在的形式為不同的個體,最終由return返回出去,被上一級的$afilearr給push。所以不會變為死迴圈。
2:變數$afilearr設定成static型別時,變數$afilearr不在記憶體棧區存放,而是在靜態資料區存放,不管該函式遞迴多少次,變數都只有乙個。當函式執行完成返回該靜態變數後,上一級的靜態變數將這個靜態變數push。
而這兩個靜態變數是同乙個變數,當上一級靜態變數內容發生變化,他push掉的自己也發生變化,他push掉自己發生變化,那上一級的靜態變數又發生變化。就這樣進入了死迴圈。
不知道你看懂了沒?
總結:一般變數,函式每次執行都會產生名字相同,但個體各自存在。就如同大袋子裝小袋子,雖然都叫做袋子,但是都是獨立的個體。
靜態變數,函式第一次執行才會產生,以後每次產生都是使用第一次產生的靜態變數,不管函式執行多少次,操作的都只有乙個靜態變數。就如同自己家有乙個袋子,每次使用後把這個袋子在放入到這個袋子裡面,怎麼能放得進去呢?
ok!~~
8樓:莘贍
你最後乙個遞迴呼叫那個,不需要返回值,直接呼叫。
agetallfile($folder.'/'.$file);
9樓:創作者
靜態變數:當程式執行離開此作用域時,其值不會消失,會使用上次執行的結果;
如果$afilearr設定為靜態變數,每次遞迴$afilearr都是前一次執行的結果加上自己的結果在傳給下一次遞迴,在把結果返回,肯定就卡死了。
php 輸出簡單的中文 亂碼問題
少個header宣告 header content type text html charset utf 8 echo 中文 然後將php文件用編輯器轉化為utf編碼 陽光上的橋 在瀏覽器的頁面上點滑鼠右鍵檢視編碼,php原始檔是什麼編碼,兩個統一嗎? 易寄波 亂碼的原因無非就是瀏覽器無法正確索引檔...
php排序問題,請教PHP排序問題,
兩個foreach迴圈影響了 請教php排序問題,樓上的是爭取的,其實就是對陣列進行排序的 array multisort f,sort asc php和mysql排序問題 50 沒這種排法,在 中或者資料庫中排序就分兩種,一種是數字排序,一種是字母排序,比如張的首字母是z,王的首字母是w,按照字母...
PHP程式設計問題
1全部我來說說 第四行是錯誤的 因為define 函式是用來定義一個常量的,語法形式是define name,value,case insensitive 前面兩個就不說了,你知道的,而case insensitive的意思是 規定常量的名稱是否對大小寫敏感。若設定為 true,則對大小寫不敏感。預...