2015-10-19 4 views
0

Это вопрос дан мне в моем классе:числа выходов, разделенных запятыми

Написать для петлевой, который печатает 1 до п, разделенных запятыми. Пример: для n = 9 print 1, 2, 3, 4, 5, 6, 7, 8, 9

Мой код.

for (int number = 1; number <= 9; number++) 
    Console.Write("{0},", number); 
Console.ReadLine(); 

Он выводит 1,2,3,4,5,6,7,8,9, Есть ли способ, чтобы напечатать его без запятой после 9? Спасибо за любую помощь.

+0

Вы думали об использовании 'if' заявления? –

+1

Да. Я могу думать по крайней мере 4 способа. 1) Проверьте, является ли это значение '9', 2) создайте строку и условно добавьте запятую. 3) постройте список значений и используйте' string.Join', 4), создайте строку и условно _remove_ последняя запятая. –

ответ

1

Другой способ сделать это, распечатав первый номер, а затем в каждой итерации распечатке запятая с последующим следующим номером. Таким образом, запятая не заканчивается.

Console.Write("1"); 
for (int number = 2; number <= 9; number++) 
    Console.Write(", {0}", number); 
-1

Простым, но, возможно, не самым оптимизированным может быть сохранение вашего сообщения в строке и клип с конца.

string output = ""; //empty string 
for (int number = 1; number <= 9; number++) 
    string += number.ToString() + ","; //you can add strings together with '+'. 

output = output.Substring(0, output.length - 1); 
Console.WriteLine(output); 
Console.ReadLine(); 

мой C# немного ржавый

Here является ссылкой на Substring()

1

продлив метод можно использовать conditional (ternary) operator и сделать что-то вроде этого:

int maxNumber = 9; 
for (int number = 1; number <= maxNumber; number++) 
{ 
    Console.Write(number != maxNumber ? "{0}," : "{0}", number); 
} 
Console.ReadLine(); 

Другой, более краткий вариант с использованием String.Join и Enumerable.Range:

int maxNumber = 9; 
Console.Write(String.Join(",", Enumerable.Range(1, maxNumber))); 
Console.ReadLine(); 
+1

[Полезно для объяснения, какие тернарные операторы есть] (https://msdn.microsoft.com/en-us/library/ty67wk28.aspx) –

+0

@PremierBromanov Спасибо, я добавил ссылку на мой ответ. – Calum

0

Это одна из возможностей, если вы хотите использовать цикл for для упражнения.

int count = 9; string result = ""; 

for (int i = 1; i <= count; i++) result += i.ToString(i < count ? @"#\," : "#"); 

Console.WriteLine(result); 
0

Вот один из способов:

Console.WriteLine(string.Join(",", Enumerable.Range(1, 9))); 
0

Вы должны определить, какое значение для п будет первым:

Console.Write("Please insert max value: "); 
int n = int.Parse(Console.ReadLine()); 

теперь вы можете использовать цикл для вывода чисел :

 for (int i = 1; i <= n; i++) 
     { 
      Console.Write(i + ", "); 
     } 
0

Вот простая логика печатать без запятой на примере конец : 2, 4, 6, 8, 10

namespace PurushLogics 
{ 
    class Purush_EvenNoOddNo 
    { 

     //Print Even Number & Odd Numbers , seperated 
     static void Main() 
     { 

      int start = 50; 
      int end = 100; 

      for (int j = start; j <= end; j++) 
      { 
       if (j % 2 == 0) 
       { 
        Console.Write(j); 
        if (j < end) // To avoid print , at the end 
        { 
         Console.Write(","); 
        } 

       } 
      } Console.WriteLine(); 
      for (int j = start; j <= end; j++) 
      { 
       if (j % 2 != 0) 
       { 
        Console.Write(j); 
        if (j < end-1) 
        { 
         Console.Write(",");// To avoid print , at the end 
        } 

       } 
      } Console.WriteLine(); 
      Console.ReadLine(); 

     } 

    } 
} 
Смежные вопросы