2016-10-24 5 views
1

これは初めてのstackoverflowを使用しています。それが途中で、私は少しPHPの問題があるようです。 19ドリンクのコードを出力することです。ここでPHP:19ドリンクを正しくフォーマットする方法

19 drinks can serve odd number of guests. 
You take 1 down from 19... 
18 drinks can serve even number of guests. 
You take 2 down from 19... 
17 drinks can serve odd number of guests. 
You take 3 down from 19... 
16 drinks can serve odd number of guests. 

を実際のコードである:それは出力以下の必要がある代わりに

19 drinks can serve odd number of guests. 
You take 19 down from 19... 
18 drinks can serve even number of guests. 
You take 18 down from 19... 
17 drinks can serve odd number of guests. 
You take 17 down from 19... 
16 drinks can serve odd number of guests. 

:私の現在のコードでは、それは次のように出力します。

<?php 

    $drinks= 19; 

    for($drinks= 19; $drinks>= 1; $drinks--) 
    { 

     if ($drinks % 2) 
     { 
      echo '<br />'; 
      echo $drinks. ' drinks can serve odd number of guests. '; 
      echo '<br />'; 
      echo 'You take ' . $drinks. ' down from 19...'; 
      echo '<br />'; 
      continue; 
     } 
     else 
     { 
      echo '<br />'; 
      echo $drinks. ' drinks can serve even number of guests. '; 
      echo '<br />'; 
      echo 'You take ' . $drinks. ' down from 19...'; 
      echo '<br />'; 
      continue; 
     } 
    } 
?> 

私は切れているようです。どのような問題に適切に対処できますか?

+1

「あなたを取る」を置き換えます。 $ドリンク。 「19歳から...」、「あなたがやる」。 (19- $ドリンク+ 1)。 'down from 19 ...'; ' – Scott

+0

正しい書式; -https://eval.in/665671 –

+0

ここで本を読んでください:http://99-bottles-of-beer.net/language-php-1825。 html noop version – JOUM

答えて

0

私は一度だけの飲み物の数を定義することをお勧め:

<?php 

    $drinkNr=19; 
    for ($drinks= $drinkNr; $drinks> 0; $drinks--) 
    { 
    : 
    // now you can do the text 
    echo 'You take ' . ($drinkNr - $drinks + 1) . ' down from ' . $drinkNr . '..'; 
+0

これはまた役に立ちます、ありがとう。 – xy1990

-1
$drinks_total = 19; 

for($drinks_taken = 1; $drinks_taken <= $drinks_total; $drinks_taken++) 
{ 

    if ($drinks_taken % 2) 
    { 
     $html = ' 
      <br /> 
      %d drinks can serve even number of guests 
      <br /> 
      You take %d down from %d... 
      <br /> 
     '; 
    } 
    else 
    { 
     $html = ' 
      <br /> 
      %d drinks can serve odd number of guests 
      <br /> 
      You take %d down from %d... 
      <br /> 
     '; 

    } 

    echo sprintf($html,$drinks_total - $drinks_taken, $drinks_taken, $drinks_total); 
} 
+1

Downvoted、コードの説明を追加できますか? – tjons

0

うわあ。 これを行う簡単で簡単なコードは次のとおりです。

<?php 

$total = 19; 
$i = 1; 
for ($c=$total;$c>0;$c--) { 
    $output = (($c % 2) == 1) ? $c.' drinks can serve odd number of guests' : $c.' drinks can serve even number of guests'; 
    $output .= ($i != $total) ?'<br>You take '.$i.' down from '.$total.'...' : ''; 
    echo $output.'<br>'; 
    $i++; 
} 

?> 
関連する問題