什么是错我的do while循环的逻辑?做而当条件为真不循环回路
我想阻止用户进一步继续到应用程序,除非他们提供正确的输入。
目前,它只能接受一个输入错误崩溃并产生这个异常之前:
的System.Exception: 在disabler.Program.readInput(字符串输入) 在disabler.Program.detectInput(串输入) 在disabler.Program.Main(字串[] args)
这是我的代码:
private static string detectInput(string Input)
{
string result= Input;
do
{
//pass input to readInput method
if ((result == "exit") || (result == "query") || (result == "disable"))
{
readInput(result);
}
else
{
Console.WriteLine("invalid input detected. Please try again.");
result= Console.ReadLine();
readInput(result);
}
}
while (!((result == "exit") || (result == "query") || (result == "disable")));
return result;
}
下面是readInput方法的代码:
//Read user input
private static string readInput(string Input)
{
int successfullyDisabled = 0;
string input = string.Empty;
switch (Input)
{
case "disable":
int disableCounter = 0;
invalidAccount.ForEach(delegate(String samAccountName)
{
disableCounter++;
Console.Write(disableCounter);
//disable inactive accounts
if (DisableADUser(samAccountName))
{
successfullyDisabled++;
}
});
invalidAccount.Clear();
validAccount.Clear();
Console.WriteLine("Press [ENTER] to continue or [ESC] to exit.\n");
break;
case "query":
Console.WriteLine("No.\t | Dep | User Account\t | Status");
int countRow = 0;
validAccount.ForEach(delegate(String samAccountName)
{
countRow++;
Console.Write(countRow);
//find status of active accounts
findUserStatus(samAccountName);
});
validAccount.Clear();
invalidAccount.Clear();
Console.WriteLine("Press [ENTER] to continue or [ESC] to exit.\n");
break;
case "exit":
//leave console
Environment.Exit(2);
invalidAccount.Clear();
validAccount.Clear();
break;
default:
throw new Exception("Invalid command entered. Please enter command again.");
}
return input;
}//end of ReadInput
什么是异常消息? readInput有什么作用? –
异常显示它正在被'readInput'方法抛出。为了帮助任何可能有兴趣回答这个问题的人,你会如此友好,以便包含它的代码。 – Alex
你是否真的想检查'exit'两次? – paxdiablo