У меня есть код консольного калькулятора, написан на C#, сделан в целях изучения. Не давно перешел на этот язык с Java, кружечка с кофе мне не подходила под интересы, программирую 2 года, но знаете, как-то все странно получалось, я скорее не старался понять язык, а изучил основы и дальше все на ходу доучивал, если кратко занимался разработкой чисто для релакса (хз как это, но это именно так) и неважно. В связи с тем, что я решил перейти на другой язык, мне показалось интересным начать именно изучать язык и понимать, как и что работает, а не писать говнокод. Я прошу у вас, программистов со стажем, посмотреть мой код и указать на ошибки или не логические действия, может где-то какую-то строку нужно убрать и заменить другой и т.п. В общем прошу, если не составит труда, направить меня на мои ошибки. Вот код:
namespace ConsoleApp1
{
class Program
{
private static int A;
private static int B;
static void Main(string[] args)
{
StartProgramm();
Close();
}
private static void StartProgramm()//полагает начало программы
{
MathGetNumber();
MathOperation();
}
private static void MathGetNumber()//получаем число
{
string AT;
string BT;
Console.WriteLine("Первое число");
AT = Console.ReadLine();
Console.WriteLine("Второе число");
BT = Console.ReadLine();
try
{
A = Convert.ToInt32(AT);
B = Convert.ToInt32(BT);
}
catch (FormatException)
{
Console.WriteLine("Не шали, вводи только числа!");
StartProgramm();
}
for (byte i = 0; i < 4; i++)//это я решил сделать отступ в несколько строк
{
Console.WriteLine();
}
}
private static void MathOperation()//производим операцию с числом
{
byte Operate;
string Operation;
if (A == 0 && B == 0)
{
Console.WriteLine("Числа имеют значение 0, продолжать работу программы нет смысла, завершение");
}
else
{
const byte Longe = 4;
byte OperNum = 1;
char[] NumUs = new char[Longe] { '+', '-', '*', ':' };
Console.WriteLine("Числа имеют значение > или < 0, выберите желаемую операцию над числом");
for (byte i = 0; i < Longe; i++)
{
Console.WriteLine(OperNum + ") " + NumUs[i]);
OperNum++;
}
Operation = Console.ReadLine();
try
{
Operate = Convert.ToByte(Operation);
if (Operate <= 4)
{
switch (Operate)
{
case 1:
Console.WriteLine("Ваше число = " + (A + B));
break;
case 2:
Console.WriteLine("Ваше число = " + (A - B));
break;
case 3:
Console.WriteLine("Ваше число = " + (A * B));
break;
case 4:
Console.WriteLine("Ваше число = " + (A / B));
break;
}
}
else
{
Console.WriteLine("Хватит шалить, вводи число от 1 до 4 включительно");
MathOperation();
}
}
catch (FormatException)
{
Console.WriteLine("Хватит шалить, вводи число от 1 до 4 включительно");
MathOperation();
}
}
}
private static void ReturnProgramm()//повторение работы программы с самого начала, на случай если пользователь захочет еще раз посчитать число
{
StartProgramm();
Close();
}
}
private static void Close()//завершение работы программы
{
string answer;
Console.WriteLine("Close program? y/n");
answer = Console.ReadLine();
if (answer == "y")
{
return;
}
else if (answer == "n")
{
ReturnProgramm();
}
else
{
Close();
}
}
}
}
Programпишется с одной буквойm. – Alexander Petrov May 23 '19 at 12:36