почему 2 автоматически конвертируется в 299? - PullRequest
0 голосов
/ 26 марта 2011

Я новичок:

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

namespace ConsoleApplication1
{
    class Program
    {
        private static void Main()
        {
            Console.WriteLine("Welcome to my calculator");
            Console.WriteLine("Calculator only supports -,+,/,*");
            Console.WriteLine("Calculator V1.20 alpha");

            Console.WriteLine("Enter your first number");
            int num1 = Console.ReadKey().KeyChar;
            Console.WriteLine("Enter your operator");
            Console.WriteLine();
            char operation = Console.ReadKey().KeyChar;
            Console.WriteLine("Enter your second number");
            Console.WriteLine();
            int num2 = Console.ReadKey().KeyChar;
            //the answer variables
            int answersubtract = num1 - num2;
            int answeradd = num1 + num2;
            int answermulti = num1 * num2;
            int answerdiv = num1 / num2;


            if (operation == '-')
            {
                Console.WriteLine(answersubtract);
            }

            else if (operation == '+')
            {
                Console.WriteLine(answeradd);
            }
            else
            {
                if (operation == '*')
                {
                    Console.WriteLine(answermulti);
                }

                else
                {
                    if (operation == '/')
                    {
                        Console.WriteLine(answerdiv);

                    }
                }
            }

            Console.ReadKey();
        }
    }
}

Редактировать

Входные данные, которые я посылаю программе:

1 + 2

Ответы [ 2 ]

3 голосов
/ 26 марта 2011
 int num1 = Console.ReadKey().KeyChar;

Вы читаете символ, а не число.Просмотрите документы для ConsoleKeyInfo.KeyChar.

Разрешите пользователю вводить действительные числа:

 int num1 = int.Parse(Console.ReadLine());

Сосредоточьтесь на обработке ошибок и операторе switch в версии 2 вашегопрограмма.

0 голосов
/ 26 марта 2011

Потому что при вводе 2 он представляется как char, значение которого равно 229.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...