输入字符

时间:2013-01-02 19:49:45

标签: c# input int

问题是我必须创建一个控制台应用程序,我输入一个数字并写出符号“|”我插入了很多。例如,如果我插入数字6,它会写出||||||。它一直在询问,直到我插入0并关闭。到目前为止,输入是这样的:

int input;

Console.Write("\n\n Insert an number ---> ");
input = Convert.ToInt32(Console.ReadLine());

我尝试使用char数组但没有用。

4 个答案:

答案 0 :(得分:3)

string上实际上a constructor用给定字符初始化一定数量的字符串:

string s = new string('|', 10);

s将是字符串"||||||||||"

答案 1 :(得分:2)

循环是如此2012年:)

using System;
using System.Linq;

internal class Program
{
  private static void Main(string[] args)
  {
    Enumerable.Range(0, Int32.MaxValue)
      .Select(i => Int32.TryParse(Console.ReadLine(), out i) ? i : -1)
      .Where(i => i >= 0)
      .TakeWhile(i => i > 0)
      .Select(i => {
         Console.WriteLine(String.Join("", Enumerable.Repeat("|", i)));
         return 0;})
      .Count();
  }
}

描述(即使答案非常严重):

  • Enumerable.Range允许半无限(正如Chris Sinclair指出它只有2,147,483,647次)可以枚举大部分代码在单个语句中。
  • 第一个Select逐行读取输入并将有效输入转换为整数,其余为-1(请注意,在此示例中,-1是“无效输入”的可能值,通常会返回{{1 }或Tuple<int, bool>表示无效值
  • int?过滤掉“无效”输入(正确输入的负数以及之前Where报告为-1的所有非数字)。
  • Select为0提供终止条件。
  • 第二个TakeWhile打印结果。请注意,要从同一个字符的多个副本构造字符串,应该使用正确的Select构造函数,但它不那么有趣。
  • 最后new String("|", count)强制立即迭代查询。

答案 2 :(得分:0)

伪代码

 is read line a number
   until read line is 0
       for 1 to the number
           print |
     is read line a number
     if not a number go back at asking the number saying it is not a number
 if not a number go back at asking the number saying it is not a number

现在玩得很开心

答案 3 :(得分:0)

牵引你应该知道的基本概念

for循环:

for(int i=0; i<input; i++)
{
    // do stuff
}

这是input次做某事的常见模式,因此如果input等于6,则会//do stuff 6次。


<强> Console.Write

Console.Write('|');

Console.Write将文字写入控制台,无添加最后添加新行。


我确信您可以某种方式结合其中一些语言功能,以满足您的要求。