[英]while-loop with an empty body and an assignment in the condition
我最近在一個廢棄的 PHP 代碼項目上遇到了以下構造:
while(($my_var = mt_rand(3, 6))%2 != 0);
(注意循環的空主體)。 這確保 $my_var 被分配了數字 4 或數字 6。
使用上述結構是否有任何(可衡量的,客觀的)優勢,例如
$my_var = mt_rand(2, 3) * 2;
(我特別想知道如果結果必須是偶數,為什么作者選擇將 3 包含在隨機化范圍內。)
while(($my_var = mt_rand(3, 6))%2;= 0);
這確保 $my_var 被分配了數字 4 或數字 6。
正如@Oli 在評論中提到的那樣,這非常令人費解且難以閱讀。
它也有一個缺點,就是你無法真正預測它會迭代多少次。
它可以(理論上)“擲骰子”並在前十、十或千次迭代中得出 5 個……甚至永遠不會結束。 ( mt_rand
的實現可能已經足夠好,不會發生這種情況,但仍然如此。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.