我有一個相當簡單的問題,但它並沒有通過其他問題解決,並希望找到答案。在switch語句中使用條件句
假設我有一個變量整數,並希望做不同的事情,如果該值大於一個值,小於另一個值。我對這個開關的目的基本上是根據$chance
的值發送不同的結果,最終我會有很多情況,因爲這是一個遊戲。
switch ($chance)
{
case ($chance < 15):
echo"strike<br>";
case ($chance < 15 && $chance > 50):
echo"Ball<br>";
break;
case ($chance < 50 && $chance > 100):
echo"Single<br>";
break;
case ($chance <= 150 && $chance >= 100):
echo"double<br>";
break;
case ($chance <= 175 && $chance >= 151):
echo"triple<br>";
break;
case ($chance > 200 && $chance > 175):
echo"Ground Rule Double<br>";
break;
case ($chance < 200):
echo"Home Run<br>";
break;
}
現在,我被告知我可以在switch語句中使用條件語句,而且我也被告知我無法使用它們。我真的不知道該相信誰。
我所知道的是,目前這個switch語句不能按預期工作。它確實有效,但我會回到隨機回聲。這種情況發生時,有時機會可能是100,我會得到一個本壘打回聲。我不確定。
我知道我可以用一系列的if
做同樣的事情,但是如果我可以達到相同的結果,那麼代碼長度就會有很大差異。
我想我可以這樣做
case 1:
echo this
case 2:
echo that
etc etc
直到我打2或300,但我想避免,如果可能的。 任何輸入非常感謝
你會期待什麼? 'case($ chance <15 && $ chance> 50):'一個變量不能同時擁有這兩個值! – jtheman
根據「代碼長度」,不要試圖讓自己在做什麼太可愛。由於編寫不明確,複雜的代碼比明確,易於理解的代碼短,因此不會獲得積分。無論如何,我不知道if-else會導致更多的代碼。如果有的話更短,因爲你不需要中斷語句。 –
此外,請注意,您在echo「strike
」後錯過了休息時間;這是故意的嗎? –