如何缩短 C# 中的特定代码?
How do I shorten that specific code in C#?
我是 C# 初学者。我正在尝试通过名为 SoloLearn 的应用程序进行学习。
在应用程序中,它要我用“*”替换一系列数字中的 3 及其倍数。
例如;输入是 n 个数字,比方说 7,输出应该是“12 * 45 * 7”(没有空格)
我试过了,它起作用了,但是最后的这两个“如果”让我的眼睛流血了。
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);
}
}
}
}
}
我试了一下,但似乎找不到任何解决方法。
您如何仅使用给出的代码中的内容来缩短这些?
那里不需要 continue
声明。您可以使用 if
和 else
而不是两个 if
,例如:
for (int x = 1; x <= number; x++)
{
if (x % 3 == 0)
{
Console.Write("*");
}
else
{
Console.Write(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}");
}
我是 C# 初学者。我正在尝试通过名为 SoloLearn 的应用程序进行学习。 在应用程序中,它要我用“*”替换一系列数字中的 3 及其倍数。 例如;输入是 n 个数字,比方说 7,输出应该是“12 * 45 * 7”(没有空格) 我试过了,它起作用了,但是最后的这两个“如果”让我的眼睛流血了。
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);
}
}
}
}
}
我试了一下,但似乎找不到任何解决方法。 您如何仅使用给出的代码中的内容来缩短这些?
那里不需要 continue
声明。您可以使用 if
和 else
而不是两个 if
,例如:
for (int x = 1; x <= number; x++)
{
if (x % 3 == 0)
{
Console.Write("*");
}
else
{
Console.Write(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}");
}