【发布时间】:2016-05-01 20:22:35
【问题描述】:
当用户按下某些键时,我试图更改控制台颜色,但我在 while 循环中做错了。尝试休息并返回,但两者都不适合我。我对编码还是很陌生。
static void Main(string[] args)
{
while (true )
{Console.WriteLine("Press Key R,G,B,D,C,M to change Console Color");
Console.ReadLine();
if (Console.ReadKey(true).Key == ConsoleKey.R)
{
Console.BackgroundColor = ConsoleColor.Red;
Console.ForegroundColor = ConsoleColor.Black;
Console.Clear();
//Console.WriteLine("Press Key R,G,B,D,C,M to change Console Color");
break;
}
else if (Console.ReadKey(true).Key == ConsoleKey.G)
{
Console.BackgroundColor = ConsoleColor.Green;
Console.ForegroundColor = ConsoleColor.Black;
Console.Clear();
Console.WriteLine("Press Key R,G,B,D,C,M to change Console Color");
//break;
}
else if (Console.ReadKey(true).Key == ConsoleKey.B)
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.Red;
Console.Clear();
Console.WriteLine("Press Key R,G,B,D,C,M to change Console Color");
//return;
}
else if (Console.ReadKey(true).Key == ConsoleKey.D)
{
Console.BackgroundColor = ConsoleColor.DarkGreen;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();
Console.WriteLine("Press Key R,G,B,D,C,M to change Console Color");
// break;
}
else if (Console.ReadKey(true).Key == ConsoleKey.C)
{
Console.BackgroundColor = ConsoleColor.Cyan;
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.Clear();
Console.WriteLine("Press Key R,G,B,D,C,M to change Console Color");
// break;
}
else if (Console.ReadKey(true).Key == ConsoleKey.M)
{
Console.BackgroundColor = ConsoleColor.Magenta;
Console.ForegroundColor = ConsoleColor.Black;
Console.Clear();
Console.WriteLine("Press Key R,G,B,D,C,M to change Console Color");
// break;
}
else {
Console.WriteLine("You didn't press Key R,G,B,D,C,M.");
//Console.ReadLine();
// return;
}
// Console.ReadLine();
}
}
}
}
【问题讨论】:
-
预期的行为是什么?
-
定义“不起作用”。它做什么?你期待它做什么?
-
您在每次迭代中都在执行 readline。您确定您没有为该 readline 输入密钥吗?
-
如果您希望在输入密钥后运行此循环,那么您必须使用
continue而不是return或break,因为那些关键字将离开循环。另一方面,continue将开始新的迭代。 -
+1 to kostbone...这显然是一个家庭作业问题,他给出的答案刚好够让 Vishal 走上正轨,让他解决剩下的问题。
标签: c# if-statement while-loop console-application