C# 如果状态为2,我怎么能把号码改成2

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"); }

如何减少代码中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");
    }
    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);
        }