Это моя программа для ввода двух чисел и оператора, а затем выполнения математики и выплевывания ответа (спасибо асинк за его помощь ранее). Пока все работает хорошо, за исключением тех случаев, когда я ничего не вводил. Я пытаюсь заставить его сказать «нет ввода», попробуйте еще раз, но он просто сработает. Кто-нибудь знает, почему? заранее спасибо.Как настроить обработку исключений без ввода
using System;
class Calculation
{
public static void Main(string[] data)
{
if (data.Length == 0)
{
Console.WriteLine("No input... Try again");
return;
}
double result;
if (!Double.TryParse(data[0], out result))
{
Console.WriteLine("Invalid input: " + data[0]);
return;
}
Console.WriteLine("Starting with number: " + result);
char op;
double number;
string errorMessage;
do
{
if (!TryGetData(out op, out number, out errorMessage))
{
Console.WriteLine("Invalid input: " + errorMessage);
continue;
}
switch (op)
{
case '+':
result += number;
break;
case '-':
result -= number;
break;
case '*':
result *= number;
break;
case '/':
result /= number;
break;
default:
Console.WriteLine("Done");
continue;
}
Console.WriteLine("Result = " + result.ToString());
} while (Char.ToLower(op) != 'q');
}
static bool TryGetData(out char anOperator, out double aNumber, out string message)
{
aNumber = 0;
message = null;
Console.Write("Enter an operator and a number or 'q' to quit: ");
var line = Console.ReadLine();
anOperator = line[0];
if (anOperator != 'q' && anOperator != 'Q')
{
if (line.Length <= 2)
{
message = "Enter an operator followed by a space and then a number.";
return false;
}
var isValidNumber = Double.TryParse(line.Substring(2), out aNumber);
if (!isValidNumber)
{
message = "Invalid input: " + line.Substring(2);
return false;
}
if (isValidNumber && (anOperator == '/' && aNumber == 0))
{
message = "Cannot divide by 0.";
return false;
}
if (line[1] != ' ')
{
message = "Make sure to put a space between operator and number.";
return false;
}
}
return true;
}
}
_ "но это просто сбой" _ - Запустите это в отладчике, поскольку это намного быстрее. Мы не здесь, чтобы отлаживать весь ваш код для вас. Удачи! – MickyD
Попробуйте данные == null кроме data.length –
if (data == null || data.length == 0) –