Как уже упоминали другие, вы используете Console.Write("-",chislo)
неправильно.Этот конкретный вызов метода пытается выполнить формат строки, используя первую строку в качестве шаблона и остальные параметры (только один в вашем случае) в качестве элементов для вставки в строку.Поскольку у вас нет заполнителей ({x}
, где x
- индекс параметра), он ничего не будет делать и просто распечатает строку шаблона без изменений. См. Здесь .
Чтобы продемонстрировать использование исходного кода, вы можете сделать это.(Я предполагаю, что вы хотите, чтобы все это было в одной строке. В вашем примере вы используете строку записи в операторе if, которая приведет к запуску новой строки):
for (int chislo = 2; chislo < 102; chislo++)
{
if (chislo % 2 == 0)
{
Console.Write(chislo);
}
else
{
//Using the format method correctly
Console.Write("-{0}", chislo);
}
//If you want your numbers seperated by commas
if (chislo < 101)
{
Console.Write(",");
}
}
Однако, если вы используете по крайней мере c # 6, вы можете использовать интерполяцию строк , которая позволяет вам использовать свою логику в генерации строк.Я не защищаю использование этого в производстве без некоторой очистки, но это действительно демонстрирует альтернативу.
for (int chislo = 2; chislo < 102; chislo++)
{
Console.Write($"{(chislo % 2 == 0 ? "" : "-")}{chislo}{(chislo < 101 ? "," : "")}");
}