Рейтинг:
2
sOwlO
Вы без всякой причины все усложняете. Вам не нужно использовать bool там.
using System;
namespace AgeGuesser
{
class Program
{
static void Main(string[] args)
{
string yes = "Y";
Console.WriteLine("Input your age please: ");
int input = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Is this right?(Y/N): " + input);
string input2 = Console.ReadLine();
if (yes == input2)
{
Console.WriteLine("Mgergerge");
}
else
{
Console.WriteLine("eqwrq");
}
Console.ReadKey();
}
}
}
Tenet1001
Я пытаюсь сделать так, чтобы когда вы нажимаете клавишу "Y", это считается да, но если вы нажимаете клавишу "N", это делает обратный вызов или любую другую команду, которая заставляет его вернуться к началу. Это всего лишь проект, чтобы я мог разобраться в концепциях. Я делаю этот проект, чтобы понять bool и ConsoleKeyInfo (я думаю).
Рейтинг:
0
BillWoodruff
1. Почему бы не проверить, вводит ли пользователь число ... защитное программирование ! см. раздел Использование In32.Попробуйте проанализировать этот пример.
2. почему бы не ограничить количество попыток, которые пользователь может сделать, чтобы избежать бесконечного цикла ?
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int agevalue;
int ntries = 2;
int tries = 1;
while (true)
{
Console.WriteLine($"try: #{tries} | Input your age please: ");
var age = Console.ReadLine();
if (Int32.TryParse(age, out agevalue))
{
// add range checking here ?
Console.WriteLine("Is this right?(Y/N): " + agevalue);
if (Console.ReadKey().Key == ConsoleKey.Y) break;
Console.Clear();
}
if (++tries > ntries) break;
}
}
}
}
Еще одна полезная вещь, которую можно добавить, - это проверка того, находится ли введенный возраст в определенном диапазоне, который имеет смысл в контексте вашего приложения.
Tenet1001
"если (Int32.Метод tryparse(возраст, из agevalue))"
Что вы здесь проверяете? Вы проверяете, чтобы увидеть, если метод tryparse работает?
Также:
Какое отношение в то время как (правда) не на самом верху?
BillWoodruff
Лучший способ понять это-создать консольное приложение с помощью этого кода, установить точки останова в каждой строке, запустить его и, когда вы нажмете каждую точку останова, проверить текущие значения. Во-вторых, посмотрите, что делают оператор while и метод TryParse. Выясните, что произойдет, если в этом коде не будет оператора break.
Единственный способ научиться-это проявить инициативу, изучить рабочий код, поэкспериментировать с написанием собственного кода, прочитать документацию и научиться использовать отладку для изучения поведения кода, а также для работы с ошибками.
Я абсолютно уверен, что вы можете и будете развиваться как программист, используя эти методы ... через некоторое время они станут привычными ... так же привычно, как пользоваться отверткой или молотком :)
твое здоровье, Билл