C# 如果状态为2,我怎么能把号码改成2
如何减少代码中if语句的数量C# 如果状态为2,我怎么能把号码改成2,c#,C#,如何减少代码中if语句的数量 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"); }
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);
}
}
for(int i=1;i
您可以尝试使用条件运算符
(i % 3 == 0)
? (i % 5 == 0)
? Console.WriteLine(i + " FizzBuzz")
: Console.WriteLine(i + " Fizz");
: (i % 5 == 0)
? Console.WriteLine(i + " Buzz");
: Console.WriteLine(i);
您可以执行以下操作:
for (int i = 1; i < number;i++)
{
Console.WriteLine(string.Format("{0} {1}{2}", i, i % 3 == 0 ? "Fizz":"", i % 5 == 0 ? "Buzz":"");
}
for(int i=1;i
并使用no if;-)变量,这样有助于提高代码的可读性:
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);
}
for(int i=1;i
下面是另一种适用于更多值的方法(理论上是有限的):
var modDict=newdictionary{{3,“Fizz”}、{5,“Buzz”};
对于(int i=1;ii%kv.Key==0?kv.Value:”);
Console.WriteLine(i+“”+文本);
}
试试:
string-str;
对于(int i=1;i
我们可以像下面这样做,但这不利于可读性
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);
}
for(int i=1;i
如果您尝试使用switch
语句来代替if else
如果fizzbuzz解决方案有很多示例代码示例,我建议您看看它们。而且,这听起来很像一个面试问题。。。你考虑过什么?@PaulF c#7允许非恒定切换条件
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);
}
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());
}
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);
}
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);
}