问题是我必须创建一个控制台应用程序,我输入一个数字并写出符号“|”我插入了很多。例如,如果我插入数字6,它会写出||||||。它一直在询问,直到我插入0并关闭。到目前为止,输入是这样的:
int input;
Console.Write("\n\n Insert an number ---> ");
input = Convert.ToInt32(Console.ReadLine());
我尝试使用char数组但没有用。
答案 0 :(得分:3)
答案 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
将文字写入控制台,无添加最后添加新行。
我确信您可以某种方式结合其中一些语言功能,以满足您的要求。