using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lotto
{
class Program
{
static void Main(string[] args)
{
char k = 'l';
while (!(k == 'k'))
{
Random rnd = new Random();
int[] tablica = new int[6];
for (int i = 0; i < 6; i++)
{
tablica[i] = 0;
}
for (int i = 0, z; i < 6; i++)
{
{
z = rnd.Next(1, 49);
while (tablica.Contains(z))
{
z = rnd.Next(1, 49);
}
tablica[i] = z;
}
}
Array.Sort(tablica);
foreach (int q in tablica)
{
Console.Write(q);
Console.Write(", ");
}
k = Convert.ToChar(Console.Read()) ;
Console.WriteLine("\n\n\n");
}
}
}
}
一切正常。当我使用逐步单击(Visual Studio中为F10)时,它运行良好。但是当我正常运行它之后
k=Convert.ToChar(Console.Read());
当我提供“ k”时,程序将按预期停止。
当我什么都不做的时候
foreach (int q in tablica)
{
Console.Write(q);
Console.Write(", ");
}
k = Convert.ToChar(Console.Read()) ;
Console.WriteLine("\n\n\n");
两次,当我提供除“ k”以外的任何东西时,它将执行三次。搞什么鬼。
最佳答案
Console.Read
一次从输入流(doc)中读取一个字符。当您按Enter键时,您将提供两个字符:\r
,然后是\n
,因此在暂停供进一步的用户输入之前,需要阅读两个字符。
当您使用F10来查看正在循环的内容时,我感到困惑。我只是碰巧在提供“无”时使用Enter并看到了字符弹出。