亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如果要使$num的值在1-10內為1等獎,11-20為2等獎,21-25為三等獎如何表達,在case后面接著的條件怎么寫?

如果要使$num的值在1-10內為1等獎,11-20為2等獎,21-25為三等獎如何表達,在case后面接著的條件怎么寫?

我試過case 1-10:

....這樣寫是會報錯的,

也試過case rand(1,10):

也會報錯

正在回答

7 回答

$num = rand(1,50);//獲取1至50的隨機數

$info = "";//提示信息

switch($num){

? ? case $num <= 10:

$info = "恭喜你!中了一等獎!";

break;

? ? case $num > 10 && $num <= 20:

$info = "恭喜你!中了二等獎!";

break;

? case $num > 20 && $num <= 25:

$info = "恭喜你!中了三等獎!";

break;

default:

$info = "很遺憾!你沒有中獎!";

}


0 回復 有任何疑惑可以回復我~
#1

慕俠6498191

這段在我自己的php環境下運行成功了,但在這里沒成功,奇怪。是不是和php版本有關啊。
2019-09-05 回復 有任何疑惑可以回復我~

如果使用純switch語句寫你說的那個要求,純屬找虐的。要這么寫:

switch($num){

? ? case 1:

? ? case 2:

? ? case 3:

? ? case 4:

? ? case 5:

? ? case 6:

? ? case 7:

? ? case 8:

? ? case 9:

? ? case 10:

???? $info = "恭喜你!中了一等獎!";

???? break;

? ? case 11:

? ? case 12:

? ? case 13:

? ? case 14:

……本人已累死,你還沒中獎?

}

0 回復 有任何疑惑可以回復我~
#1

慕圣3571134

好了,不開玩笑了,最簡單的算法就是,在switch語句前加這么一句: $num = ($num <= 25) ? ceil($num / 10) : $num ; 有時候算法很重要,當然實現的算法很多,學習階段可以各種算法的嘗試。
2018-12-19 回復 有任何疑惑可以回復我~
<?php
$num?=?rand(1,50);//獲取1至50的隨機數
echo?"隨機數為:?".$num;
echo?"<br?/>";
$info?=?"";//提示信息
$temp?=?$num?/?50;
if($temp<=0.2)?//$num?范圍為1-10
????$num?=?1;
else?if($temp>0.2?and?$temp<=0.4)//$num?范圍為11-20
????$num?=?2;
else?if($temp>0.4?and?$temp<=0.5)?//$num?范圍為21-25
????$num?=?3;
switch($num){
????case?1:
????????$info?=?"恭喜你!中了一等獎!";
????????break;
????case?2:
????????$info?=?"恭喜你!中了二等獎!";
????????break;
?????case?3:
????????$info?=?"恭喜你!中了三等獎!";
????????break;
????default:
????????$info?=?"很遺憾!你沒有中獎!";
}
?echo?$info;?//輸出是否中獎
?>

這個樣子可以實現你想要的功能。

4 回復 有任何疑惑可以回復我~
#1

慕圣3571134

這種算法比較冗長,可以使用三元運算,在switch前面加這么一句: $num = ($num <= 25) ? ceil($num / 10) : $num ;
2018-12-19 回復 有任何疑惑可以回復我~

<?php

$num = rand(1,50);//獲取1至50的隨機數

$info = "";//提示信息

switch(ceil($num / 10)){

? ? ? ? case 1:

$info = "恭喜你!中了一等獎!";

break;

? ? case 2:

$info = "恭喜你!中了二等獎!";

break;

? ? ? case 3:

$info = "恭喜你!中了三等獎!";

break;

case 4;

$info = "恭喜你!中了四等獎!";

break;

? ? default:

$info = "很遺憾!你沒有中獎!";

}

?echo $num."<br/>";

?echo $info; //輸出是否中獎

?>


2 回復 有任何疑惑可以回復我~

switc后的表達式應該可以寫成:switch(($num-1)/10+1),不過這個三等獎的范圍是21~30。你可以參考一下。


0 回復 有任何疑惑可以回復我~

不能使用if...else if嗎?

0 回復 有任何疑惑可以回復我~

查閱了相關網站,說是不能跟范圍限制,只是switch case語句的局限性,不過可以這樣

case 1:

case 2:

case 3:

.

.

case 10:

????????$info="............"

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

如果要使$num的值在1-10內為1等獎,11-20為2等獎,21-25為三等獎如何表達,在case后面接著的條件怎么寫?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號