C#中的算术运算应用程序中的错误

时间:2019-04-02 19:52:46

标签: c#

我正在创建一个具有以下要求的应用程序,并且是一位几乎没有编码经验的人,我需要帮助:

  

创建一个计算器,一次执行一次算术运算并将结果打印到屏幕上。

     

提示用户输入号码。
  提示用户进行操作(+-/ *)。
  提示用户输入另一个号码。
  执行操作。
  重复该操作,直到用户在任何提示下键入“退出”为止。

它无法正常工作。
当我输入quit时它不会停止。
如何添加此功能?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Arithmetic_Calculator
{
    class Program
    {
        static void Main(string[] args)
        {
            int x, y;
            char operation;

            while (true)
            {            
                Console.Write("Enter a number or type \"quit\" to exit: ");
                String entry = Console.ReadLine();

                // Prompt user for the first number
                Console.Write("Enter the first number:  ");
                x = Convert.ToInt32(Console.ReadLine());

                // Prompt the user for an operation (+ - / *).
                Console.Write("Enter an operation ");
                operation = Convert.ToChar(Console.ReadLine());

                // Prompt user for next number
                Console.Write("Enter the next number ");
                y = Convert.ToInt32(Console.ReadLine());

                if (entry.ToLower() == "quit")
                {
                    break;
                }

                if (operation == '+')
                {
                    Console.WriteLine("{0} + {1} = {2}", x, y, x + y);
                }
                else if (operation == '-')
                {
                    Console.WriteLine("{0} - {1} = {2}", x, y, x - y);
                }
                else if (operation == 'x')
                {
                    Console.WriteLine("{0} * {1} = {2}", x, y, x * y);
                }
                else if (operation == '/')
                {
                    Console.WriteLine("{0} / {1} = {2}", x, y, x / y);
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

检查输入值的if条件应在收集用户输入后立即移动。 试试:

        while (true)
        {
            Console.Write("Enter the first number or type \"quit\" to exit: ");
            String entry = Console.ReadLine();
            if (entry.ToLower() == "quit")
            {
                break;
            }
            x = Convert.ToInt32(entry);

            // Prompt the user for an operation (+ - / *).
            Console.Write("Enter an operation ");
            operation = Convert.ToChar(Console.ReadLine());

            // Prompt user for next number
            Console.Write("Enter the next number ");
            y = Convert.ToInt32(Console.ReadLine());