how do I reduce the number of if statements in this code
for (int i = 1; i < number;i++)
{
if ( i % 3 == 0 && i % 5 != 0)
{
Console.WriteLine(i + " Fizz");
}
else if (i % 5 == 0 && i % 3 != 0)
{
Console.WriteLine(i + " Buzz");
}
else if(i % 3 == 0 && i % 5 == 0)
{
Console.WriteLine(i + " FizzBuzz");
}
else
{
Console.WriteLine(i);
}
}
答案 0 :(得分:2)
您可以执行以下操作:
for (int i = 1; i < number;i++)
{
Console.WriteLine(string.Format("{0} {1}{2}", i, i % 3 == 0 ? "Fizz":"", i % 5 == 0 ? "Buzz":"");
}
如果是,则使用否; - )
答案 1 :(得分:2)
$Query->bindParam(4, $Data["PublicationDate"] ?: null);
$Query->bindParam(5, $Data["ExpirationDate"] ?: null);
这会显示例如for (int i = 1; i < number;i++)
{
string result = i + " ";
if ( i % 3 == 0)
{
result += "Fizz";
}
if (i % 5 == 0)
{
result += "Buzz";
}
Console.WriteLine(result);
}
,1_
,3 Fizz
,5 Buzz
。
请参阅下面的javascript等效代码段:
15 FizzBuzz
&#13;
答案 2 :(得分:1)
变量和conditional operator可以帮助提高代码的可读性:
for (int i = 1; i < number;i++)
{
bool isMod3 = i % 3 == 0;
bool isMod5 = i % 5 == 0;
string fizz = isMod3 ? "Fizz" : "";
string buzz = isMod5 ? "Buzz" : "";
string result = $"{i} {fizz}{buzz}";
Console.WriteLine(result);
}
这是另一种可以处理更多值的方法(理论上是无限制的):
var modDict = new Dictionary<int, string> { { 3, "Fizz" }, { 5, "Buzz" } };
for (int i = 1; i < number; i++)
{
string text = string.Join("", modDict.Select(kv => i % kv.Key == 0 ? kv.Value : ""));
Console.WriteLine(i + " " + text);
}
答案 3 :(得分:0)
你可以尝试条件运算符。
(i % 3 == 0)
? (i % 5 == 0)
? Console.WriteLine(i + " FizzBuzz")
: Console.WriteLine(i + " Fizz");
: (i % 5 == 0)
? Console.WriteLine(i + " Buzz");
: Console.WriteLine(i);
答案 4 :(得分:0)
string output = i % 3 == 0
? ( i % 5 != 0 ? $"{i} Fizz" : $"{i} FizzBuzz" )
: i % 5 == 0 && i % 3 != 0
? $"{i} Buzz"
: i.ToString();
Console.WriteLine( output );
答案 5 :(得分:0)
尝试:
string str;
for (int i = 1; i < number; i++)
{
str = i + " ";
if (i % 3 == 0)
str += "Fizz";
if (i % 5 == 0)
str += "Buzz";
Console.WriteLine(str.Trim());
}
答案 6 :(得分:0)
我们可以像下面这样做,但它对可读性不好
for (int i = 1; i < number; i++)
{
var x = i % 3 == 0;
var y = i % 5 == 0;
string istr = i.ToString();
string a = x ? (y ? istr + " FizzBuzz"
: istr + " Fizz")
: (y ? istr + " Buzz"
: istr);
Console.WriteLine(a);
}