这是我的问题我编写的代码将返回单词“Fizz”如果数字可以除以3而“Buzz”如果它可以被5整除。而“FizzBuzz”如果数字可以被3和5整除。 这是我的代码
*
<?php
function fizzbuzz(i)
if $i % 5 == 0 and $i % 3 == 0
echo "FizzBuzz";
elsif $i % 5 == 0
echo "Buzz";
elsif $i % 3 == 0
echo "Fizz";
else
echo $i;
?>
*
答案 0 :(得分:0)
大括号不是邪恶的,一直使用它们,它将帮助您更轻松,更快地调试,并为您节省宝贵的头痛和恼人的错误。
代码:(当然为了实际工作,你需要一个包装器来使用这个功能)
<?php
function fizzbuzz(i) {
if ($i%5 == 0 && $i%3 == 0) {
echo "FizzBuzz";
}
elsif ($i%5 == 0) {
echo "Buzz";
}
elsif ($i%3 == 0) {
echo "Fizz";
}
else {
echo $i;
}
}
?>
答案 1 :(得分:0)
虽然您提供的代码不是有效的PHP代码,并且您实际上并未提出有关您需要帮助的问题,但我将尝试以非常通用的方式解决您的帖子,尽可能有用且客观。
FizzBuzz问题意味着让你思考。他们的意图不是回答这个问题。任何对数学和任何计算机编程语言有内在理解的人都可以回答FizzBuzz问题。
相反,使用代码来陶醉解决方案的表达式。代码,就像诗歌一样,意味着美丽,因为虽然它意味着由机器运行,但它也意味着被人类阅读。
这是一种在有效的PHP代码中放置相同解决方案的更具表现力和优雅的方式。
function fizzBuzz($int) {
/**
* Since this is a function we want to return a value and not print it.
* So instead we initialize a variable to return the result.
*/
$returnValue = ""; // initialize an empty string
/* Create a map of divisors to words */
$divisors = array(3 => "Fizz", 5 => "Buzz");
/* Iterate over the map to find divisors of no remainder for $int */
foreach ($divisors as $divisor => $word) {
if (!($int % $divisor)) {
$returnValue .= $word;
}
}
/* Finally, if the $returnValue is empty we return $int instead */
if (!$returnValue) {
$returnValue = $int;
}
return $returnValue;
}
该代码旨在便于携带且易于理解。它的设计也很优雅,因为添加更多的除数和单词不需要额外的代码行。只需附加 divisor =&gt; $divisor
数组中的单词对。此外,请记住,函数应该返回值,而不是只是为您直接打印它们。这是使functions有用的部分原因。
以下是如何使用该功能的示例。
echo fizzBuzz(1); // 1
echo fizzBuzz(3); // Fizz
echo fizzBuzz(5); // Buzz
echo fizzBuzz(15); // FizzBuzz