iT邦幫忙

0

php迴圈邏輯問題

php
匿名 2015-07-19 19:40:402183 瀏覽

各位先輩們好
我是一個入門不久的新手
還在努力學習中
目前有一個程式
要求如下的功能:

如果輸入的數字大於等於0且小於1萬
基數為60000/1、40000/1、20000/1
如果輸入的數字大於等於1萬且小於2萬
基數為60000/2、40000/2、20000/2
如果輸入的數字大於等於2萬且小於3萬
基數為60000/3、40000/3、20000/3
依次類推...
直到第三基數結果為1
也就是除以20000為底限

以下是我自己目前想出來的
也只完成了一半而已

//$inputnumber為表單輸入傳來的數字
//定義基數
$number1=60000;
$number2=40000;
$number3=20000;
if ($inputnumber >= 0 && < 10000){
$number1 = $number1 / 1;
$number2 = $number2 / 1;
$number3 = $number3 / 1;
}
else if ($inputnumber >= 10000 && $inputnumber < 20000){
$number1 = $number1 / 2;
$number2 = $number2 / 2;
$number3 = $number3 / 2;
}
else if ($inputnumber >= 20000 & $inputnumber < 30000)
{
$number1 = $number1 / 3;
$number2 = $number2 / 3;
$number3 = $number3 / 3;
}
依此類推...

//最後印出變動後的基數
echo $number1;
echo $number2;
echo $number3;

直覺就是要用迴圈來做
但本人對迴圈還不是完全熟悉
所以不知道該怎麼寫

希望各位大大能幫忙解答
謝謝~

我實在不懂這題目有什麼意義
疑惑

<?php
$inputnumber = 13000;
$number3 = 20000 / ((int) ($inputnumber / 10000) + 1);
echo "inputnumber:".$inputnumber . "-----number1:" . $number3*3 . "-----number2:" . $number3*2 . "-----number3:" . $number3;
?>

2 個回答

2
weiclin
iT邦高手 4 級 ‧ 2015-07-20 08:43:07
最佳解答

用不到迴圈...

&lt;pre class="c" name="code">
function getNum($inNum)
{
    echo "input $inNum\n";
    if ($inNum >= 0) {
        $divNum = ceil(($inNum + 1) / 10000);
        if ($divNum &lt;= 20000) {
            return array(60000/$divNum, 40000/$divNum, 20000/$divNum);
        }
    }
}

list($number1, $number2, $number3) = getNum(9999);
echo "$number1, $number2, $number3";

遞迴...

weiclin iT邦高手 4 級 ‧ 2015-07-20 21:22:11 檢舉

也不是遞迴..
只是把化簡成簡單的算術而已

0
蟹老闆
iT邦大師 1 級 ‧ 2015-07-20 03:26:57

哈哈 班門弄斧一下

&lt;pre class="c" name="code">
$Value = 15000 ;
$Number1 = 60000 ;
$Number2 = 40000 ;
$Number3 = 20000 ;
switch ($Value > 0 ) {
    case ($Value >= 30000):
        Echo "三萬以上怎麼辨???&lt;br>";
        $Nr = 1 ;
        Break ;
    case ($Value >= 20000 and $Value &lt; 30000): 
        $Nr = 3 ;
        Break ;    
    case ($Value >= 10000 and $Value &lt; 20000):
        $Nr = 2 ;
        Break ;
    case ($Value >0 and $Value &lt; 10000):
        $Nr = 1 ;
        Break ;
}
$Number1 = $Number1 / $Nr ;
$Number2 = $Number2 / $Nr ;
$Number3 = $Number3 / $Nr ;
Echo &lt;&lt;&lt; PrintEcho
\$Number1 = $Number1 &lt;BR>
\$Number2 = $Number2 &lt;BR>
\$Number3 = $Number3 &lt;BR>  
PrintEcho;

我要發表回答

立即登入回答