2015-10-19 48 views
0

這種分離輸出的數字是在我的課給了我一個問題:用逗號

循環,到n打印1,用逗號隔開。例如:對於n = 9打印 1,2,3,4,5,6,7,8,90

我的代碼是。

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#是有點生疏

HereSubstring()

1

擴展你的方法,你可以使用conditional (ternary) operator和這樣做的引用:

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

另外,更簡潔的選項使用String.JoinEnumerable.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

您需要確定n的值將是第一:

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

現在你可以使用一個for循環輸出的數字:

 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(); 

     } 

    } 
}