2014-07-11 57 views
0

我正在一個簡單的擲骰子程序工作。所以它必須從0-5產生一個隨機數,當它選擇0-4時,它回顯,當它選擇5時,它回顯。簡單的PHP問題,我似乎無法工作

它保持回聲第一個回聲'你有6'。我似乎無法理解這一點。

<!DOCTYPE html> 
<html> 
<head> 
    <title>A loop of your own</title> 
    <link type='text/css' rel='stylesheet' href='style.css'/> 
</head> 
<body> 

<?php 

$trows = 0; 
$dice = 0; 

while ($dice == 0) 
{ 
$dice = rand(0,5); 
$trows++; 
} 

if ($dice = 5) 
{ 
    echo 'you got 6'; 
} 

else 
{ 
    echo 'you got 1-5'; 
} 

echo '<br><br>'; 
echo $trows; 

?> 

</body> 

+6

'如果($骰子= 5)'應'if($ dice == 5)'。你正在做一項任務而不是比較。 –

+1

此代碼混淆了我,爲什麼while循環?爲什麼不是rand(1,6)? – dwjv

+0

謝謝你,似乎工作!你一直在幫助很大。 – Dave

回答

1
if ($dice = 5) 

實際上是分配的值5到骰子,而不是比較值,因此if語句的第一部分將被輸入,而不是別的。

if ($dice == 5) 

是你在找什麼

編輯:從你的意見,我覺得這是你正在尋找

$trows = 0; 
$dice = 0; 

while ($dice != 5) 
{ 
    $dice = rand(0,5); 
    $trows++; 

    if ($dice == 5) { 
     echo 'you got 6'; 
    } else { 
     echo 'you got 1-5'; 
    } 

    echo '<br><br>'; 
    echo $trows; 
} 
+0

謝謝,似乎工作,但是當我回聲$ trows它總是顯示1.看來$ trows ++不能正常工作了。 – Dave

+0

你是否期待骰子滾動給定次數?你實際上在做的是說,而骰子滾動是0,再次滾動,直到它不再是0. – MajorCaiger

+0

我希望它能夠計算它所需要的多少,直到它隨機選取5 – Dave

1

你的if語句沒有一個條件測試,而是執行一項任務,然後評估該任務的真實情況(在這種情況下將始終如此)。

你的代碼應該是:

if($dice == 5) 
{ 
    echo 'you got 1-5'; 
} 

通知的==,而不是單一的=

0

這將這樣的伎倆

while ($trows == 0) 
{ 
    $dice = rand(0,5); 
    if ($dice == 5) 
    { 
    echo 'you got 6'; 
    } 

    else 
    { 
    echo 'you got 1-5'; 
    $trows++; 
    } 

} 
相關問題