c# - 如何一直提示输入直到它有效?
问题描述
我试图做到这一点,所以当给定的答案既不是 1 也不是 2 时,消息“请输入有效答案”。出现并回到问题。
这是我的代码:
Coloration(ConsoleColor.DarkMagenta, "What do you want to do? [1/2]");
Console.WriteLine("1. Draw");
Console.WriteLine("2. Stay");
int i = 0;
string input1 = Console.ReadLine();
// If answer is not 2, go through this, if answer is 2 continue
if (input1 != "2")
{
// If answer is 1 add 1 to i
if (input1 == "1")
{
i++;
}
// If answer is neither 1 nor 2; go back to question
if (input1 != "1" || input1 != "2")
{
Coloration(ConsoleColor.Red, "Please enter a valid answer.");
}
}
解决方案
你想要更多这样的东西......
Console.WriteLine("What do you want to do? [1/2]");
Console.WriteLine("1. Draw");
Console.WriteLine("2. Stay");
int userChoice = 0;
bool validInput = false;
while (!validInput)
{
Console.WriteLine();
Console.WriteLine("Enter choice [1/2]...");
string input = Console.ReadLine();
string trimmedInput = input.Trim();
if (trimmedInput == "1" || trimmedInput == "2")
{
validInput = true;
userChoice = Int32.Parse(trimmedInput);
}
}
// We leave the while loop here once validInput == true
// Now take action based on userChoice
Console.WriteLine("You chose " + userChoice);
Console.ReadLine();
推荐阅读
- css - 使用圆形点自定义 jQuery ui 滑块
- javascript - d3 访问器函数迭代
- node.js - 我正在使用 Angular 在控制台中获取数据,但我无法在 html 中呈现它
- java - 通过 WhatsApp 共享原始资源(无 SD 卡)
- ios - 从 JSON 解码后访问对象属性时崩溃
- mysql - NodeJS:自定义 REST API 端点的嵌套 SQL 查询
- android - 需要文件夹“DCIM”的路径名
- java - Spring Boot:java.awt.HeadlessException
- haskell - 在 NixOS 上强制 Haskell Stack 为 1.7.* 版本
- junit - 使用 powerMockito 的 JUnit 测试提供了 NPE