[英]How can i write this as a while loop? PHP
<?php
for ($i=0; $i<10; $i++) {
$number = mt_rand(1, 100);
if ($number %2== 0) {
$result = 'even';
} else {
$result = 'odd';
}
echo $number.' '.'('.$result.')'.'<br>';
}?>
我想以 while 循環形式編寫它,這是我所得到的。 它只打印一個隨機數,僅此而已。 我在 PHP8.1 上使用 phpStorm 和邊緣瀏覽器。
<?php
$i=0;
while ($i<10) {
if ($number=mt_rand(1,100)) {
$result = 'even';
} else {
$result = 'odd';
}
$i++;
echo $number.' '.'('.$result.')'.'<br>';
}
?>
代碼不起作用的主要原因是您在if()
條件內分配了$number = mt_rand(1,100)
。
所以每次你執行 if then 它都不會比較,但它會繼續分配$number
變量。 我已經分離了分配和比較邏輯。
嘗試這個:
<?php
$i=0;
while ($i<10) {
$number = mt_rand(1,100);
if ($number % 2 == 0) {
$result = 'even';
} else {
$result = 'odd';
}
$i++;
echo $number.' '.'('.$result.')'.'<br>';
}
我改為 10 以說明情況:您使用的腳本可以生成數字可以重復; 我放的第二個腳本會生成唯一的隨機數(如果需要); 通過取消注釋//$max=100;
並評論$max=10;
第二個腳本將在 1..100 范圍內生成 UNIQUE NUMBERS
<?php
/*the first script*/
$max=100;
//$max=10;
$i=0;
while ($i<10) {
if (($number=mt_rand(1,$max))and(($number % 2) ==0)) {
$result = 'even';
} else {
$result = 'odd';
}
$i++;
echo $number.' '.'('.$result.')'.'<br>';
}
echo '<hr>';
/*the second script : unique numbers*/
$nrs=range(1,$max);
$i=-1;while($i++<9){
$pos=mt_rand(0,count($nrs)-1);
$nr=$nrs[$pos];
unset($nrs[$pos]);
rsort($nrs);
echo $nr.'-'.(($nr%2)==0?'even':'odd').'<br>';
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.