题目:不断要求用户输入一个数字,然后打印这个数字的二倍,输入q结束下面是我写的程序,有个缺点只要是按任何字母都可以退出,大家帮我修改下,怎样才可以只有按q才退出啊。
int input;
bool flage = true;
do
{
try
{
Console.WriteLine("请输入一个数字,退出程序请输入q");
input = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{0}的二倍是{1}", input, input * 2);
flage = true;
}
catch
{
flage = false;
}
} while (flage);
Console.WriteLine("程序退出成功!!!");
int input;
bool flage = true;
do
{
try
{
Console.WriteLine("请输入一个数字,退出程序请输入q");
input = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{0}的二倍是{1}", input, input * 2);
flage = true;
}
catch
{
flage = false;
}
} while (flage);
Console.WriteLine("程序退出成功!!!");
if (Console.ReadKey(false).Key == ConsoleKey.Q)
{
//退出
}
=>
string s = Console.ReadLine();
if (s.ToLower() == "q")
break;
else
input = Convert.ToInt32(s);
上面这个朋友,你的这个代码,运行要报错,说方法组不能应用于与string类型
int input;
bool flage = true;
string k = string.Empty;
do
{
try
{
Console.WriteLine("请输入一个数字,退出程序请输入q");
k = Console.ReadLine();
input = Convert.ToInt32(k);
Console.WriteLine("{0}的二倍是{1}", input, input * 2);
}
catch
{
if (k.ToLower() == "q")
{
flage = false;
}
else
{
Console.WriteLine("输入字符不能转换为数字!");
}
}
} while (flage);
Console.WriteLine("程序退出成功!!!");
do
{
Console.WriteLine("请输入一个数字,退出程序请输入q");
string str = Console.ReadLine();
if (str.ToLower() == "q")
break;
int input = 0;
if (int.TryParse(str, out input))
{
Console.WriteLine("{0}的二倍是{1}", input, input * 2);
}
else
{
Console.WriteLine("输入字符不能转换为数字!");
}
} while (true);
Console.WriteLine("程序退出成功!!!");象这样,逻辑,效率都要好点。
int turnedInput;
bool flage = true;
do
{
Console.WriteLine("请输入一个数字,退出程序请输入q");
input = Console.ReadLine();
if (int.TryParse(input, out turnedInput))
Console.WriteLine("{0}的二倍是{1}", turnedInput, turnedInput * 2);
else if (input.Equals("q"))
flage = false;
}
while (flage);
{
Console.WriteLine("程序退出成功!!!");
}