这是我使用c#在vs2013中的简单计算器代码,它应该做的是当程序小时如果我按Q它应该退出但它继续进行即使我输入Q什么方法错误
class Program
{
public static void Main(string[] args)
{
float value1, value2, result= 0;
char op , cont;
Console.WriteLine("Simple Calculator");
do {
Console.WriteLine("Please enter Q to Quit or continue ");
cont = Convert.ToChar(Console.ReadLine().ToUpper());
Console.WriteLine("Please enter First value ");
value1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please enter Second value ");
value2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please enter operator ");
op = Convert.ToChar(Console.ReadLine());
if (op == '+')
{
result = value1 + value2;
Console.WriteLine("Result is : {0}", result);
}
}
while(cont!='Q');
Console.ReadKey();
}
}
答案 0 :(得分:2)
如果您想立即退出,需要立即解决。为此,提出以下一行
if (cont == 'Q')
break;
在你的代码之后,
Console.WriteLine("Please enter Q to Quit or continue ");
cont = Convert.ToChar(Console.ReadLine().ToUpper());
答案 1 :(得分:1)
您可以编写一个在条件下中断的无限循环:
while (true)
{
Console.WriteLine("Please enter Q to Quit or continue ");
cont = Convert.ToChar(Console.ReadLine().ToUpper());
if (cont == 'Q') break;
Console.WriteLine("Please enter First value ");
value1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please enter Second value ");
value2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please enter operator ");
op = Convert.ToChar(Console.ReadLine());
if (op == '+')
{
result = value1 + value2;
Console.WriteLine("Result is : {0}", result);
}
}
答案 2 :(得分:0)
您可以通过阅读完整的一行(作为字符串)并尽早返回来解决此问题。作为第一个角色。
之后,您可以从字符串中检索字符。
答案 3 :(得分:0)
一次性do-while循环,无论条件如何!!!!
因此,对于退出,在将值读入cont
答案 4 :(得分:0)
首先是WriteLine调用中的短语
Console.WriteLine("Please enter Q to Quit or continue ");
非常混乱。例如,我不明白我应该输入什么来继续计算。
其次,即使用户输入“Q”,您也会通过循环。
至少你必须在输入时检查变量cont
,如果它等于'Q'则退出循环。例如
while ( true )
{
Console.WriteLine("Please enter Q to Quit or continue ");
cont = Convert.ToChar(Console.ReadLine().ToUpper());
if ( cont == 'Q' ) break;
//...
考虑到您将变量value1
和value2
定义为浮点数
float value1, value2, result= 0;
但允许仅输入整数值。例如
value1 = Convert.ToInt32(Console.ReadLine());
我会按以下方式编写循环
while ( true )
{
Console.WriteLine( "Please enter an operator ( +, -, *, / ) or Q to quit: " );
op = Convert.ToChar(Console.ReadLine().ToUpper());
if ( op == 'Q' ) break;