如何缩短C#中的特定代码?
我是初学者。我正在尝试通过一个名为SoloLearn的应用程序学习。 在应用程序中,它希望我用“*”替换一系列数字中的3及其倍数。 例如输入是n个数字,比如说7,输出应该是“12*45*7”(没有空格) 我试过这个,但最后这两个“如果”让我的眼睛流血如何缩短C#中的特定代码?,c#,fizzbuzz,C#,Fizzbuzz,我是初学者。我正在尝试通过一个名为SoloLearn的应用程序学习。 在应用程序中,它希望我用“*”替换一系列数字中的3及其倍数。 例如输入是n个数字,比如说7,输出应该是“12*45*7”(没有空格) 我试过这个,但最后这两个“如果”让我的眼睛流血 using System; using System.Collections.Generic; namespace SoloLearn { class Program { static void Main(str
using System;
using System.Collections.Generic;
namespace SoloLearn
{
class Program
{
static void Main(string[] args)
{
int number = Convert.ToInt32(Console.ReadLine());
//your code goes here
for (int x = 1; x <= number; x++)
{
if (x%3==0)
Console.Write("*");
if (x%3==0)
continue;
{
Console.Write(x);
}
}
}
}
}
使用系统;
使用System.Collections.Generic;
名称空间SoloLearn
{
班级计划
{
静态void Main(字符串[]参数)
{
int number=Convert.ToInt32(Console.ReadLine());
//你的密码在这里
对于(int x=1;x您不需要在此处使用continue
语句。您可以使用if
和else
来代替两个if
语句,例如:
for (int x = 1; x <= number; x++)
{
if (x % 3 == 0)
{
Console.Write("*");
}
else
{
Console.Write(x);
}
}
用于(int x=1;x用于娱乐:
static void Main(string[] args)
{
int number = Convert.ToInt32(Console.ReadLine());
var seq = Enumerable.Range(1, number).Select(x=>x%3==0?"*":x.ToString());
Console.WriteLine(string.Join("", seq));
}
当然,我可以将它进一步缩短为一行,但这似乎太过分了。可能还有一种方法可以获得隐式的ToString()
转换。for
循环的稍短的版本是:
for (int x = 1; x <= number; x++)
{
Console.Write(x % 3 == 0 ? "*" : $"{x}");
}
for(int x=1;x)看看,你会发现你可以在if
..for(var x=1;xstring.Concat(seq)
之后使用一个块。Concat(seq)
是做string.Join(“,seq)
的一种稍微干净的方法。它被称为“三元运算符”