Редактировать. Основываясь на полученных ответах, я понял, что я задаю больше, чем я знаю на этом раннем этапе моего обучения, и поэтому я решил забыть этот вопрос, пока не узнаю и не пойму больше. Я не хочу переступать и смущать себя.Введено неправильное значение. goto Start;
Просто новичок ищет руководство.
Из предыдущего вопроса, который я задал здесь, я познакомился с goto Start; в инструкции переключателя.
Я начал использовать его, и мне подумалось, что я хочу, чтобы программа перешла к началу в случае, если пользователь ввел недопустимый ввод. Например, в моем калькуляторе ниже, если пользователь вводит нечто, отличное от числа, как мне заставить программу игнорировать ввод и снова запрашивать пользователя, чтобы ввести номер? Возможно, даже отобразите «неверный вход. Попробуйте еще раз» для пользователя.
Прямо сейчас, если ничего, кроме числа, вводится, консоль вылетает и выдает мне ошибку.
Заранее спасибо за помощь
int num1, num2, output;
string op;
Console.Write("\n\n");
Console.WriteLine("Calculator\n");
Console.WriteLine("=============");
Console.Write("\n\n");
Start:
Console.Write("Please enter first number:");
num1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Please enter second number: ");
num2 = Convert.ToInt32(Console.ReadLine());
Operator:
Console.WriteLine("Please select operator: ");
Console.WriteLine("\nAddition : +");
Console.WriteLine("Multiplication: *");
Console.WriteLine("Division: /");
Console.WriteLine("Subtraction: -");
Console.Write("Enter Operator: ");
op = Console.ReadLine();
switch (op)
{
case "+":
output = num1 + num2;
Console.WriteLine("{0} added to {1} = {2}", num1, num2, output);
break;
case "*":
output = num1 * num2;
Console.WriteLine("{0} multiplied by {1} = {2}", num1, num2, output);
break;
case "/":
if (num2 == 0)
{
Console.WriteLine("Cannot divide by zero. Please try again");
goto Start;
}
else
{
output = num1/num2;
Console.WriteLine("{0} divided by {1} = {2}", num1, num2, output);
break;
}
case "-":
output = num1 - num2;
Console.WriteLine("{0} minus{1} = {2}", num1, num2, output);
break;
default:
Console.WriteLine("You entered an invalid operator. Please try again\n");
goto Operator;
}
Console.WriteLine("\nPress enter to continue....");
Console.ReadLine();
Я еще не знаком с инструкциями do/while :( –
@Jude Я не знаю, с какими конструктами вы знакомы, но он может быть переписан с любым циклом.Если у вас возникли проблемы, сообщите мне, какой из них вы выберете, и я реорганизую его для выбранного вами цикла. – slawekwin
Честно говоря, я не знаком с тем, что я только начал с двух/три недели назад. Я думаю, что я должен просто забыть свой вопрос сейчас, пока я не начну учить больше и я в состоянии понять больше. я, возможно, более ступенчатые. Спасибо за вашу помощь, хотя. –