#c# #type-conversion #user-input
#c# #преобразование типов #пользовательский ввод
Вопрос:
Я пытаюсь создать программу, которая спрашивает пользователя, какой у него рост и какие шаги он предпринял, и преобразует это в мили. У меня возникли проблемы с тем, чтобы программа даже задавала пользователю вопросы, и помощь была бы признательна. Вот Код, который у меня есть на данный момент.
float Height;
float Steps;
float CON_FAC;
float FEET_IN_Mile;
float strideLength;
float averageStride;
float feetWalked;
float milesWalked;
Console.Write("Input height(inches): ");
Height = Convert.ToSingle(Console.ReadLine());
Console.Write("Input Steps(today):");
Steps = Convert.ToSingle(Console.ReadLine());
CON_FAC = .413F;
FEET_IN_Mile = 5280;
strideLength = Height * CON_FAC;
averageStride = strideLength / 12;
feetWalked = averageStride * Steps;
milesWalked = feetWalked / FEET_IN_Mile;
Console.WriteLine($"You walked {milesWalked} miles");
Комментарии:
1. «У меня возникли проблемы с тем, чтобы программа даже задавала пользователю вопросы» — в чем проблема, вы получаете исключение?
2. С тобой ты будешь счастливее
float.TryParse
. Он не будет выдавать исключение, когда ваши пользователи ошибочно вводят число
Ответ №1:
Используйте float.Попробуйте разделить или поплавать.Синтаксический анализ
float Height;
float Steps;
float CON_FAC;
float FEET_IN_Mile;
float strideLength;
float averageStride;
float feetWalked;
float milesWalked;
Console.Write("Input height(inches): ");
Height = float.Parse(Console.ReadLine());
Console.Write("Input Steps(today):");
Steps = float.Parse(Console.ReadLine());
CON_FAC = .413F;
FEET_IN_Mile = 5280;
strideLength = Height * CON_FAC;
averageStride = strideLength / 12;
feetWalked = averageStride * Steps;
milesWalked = feetWalked / FEET_IN_Mile;
Console.WriteLine("You walked " milesWalked " miles");
используйте это или проверьте, является ли значение плавающим
float Height;
float Steps;
float CON_FAC;
float FEET_IN_Mile;
float strideLength;
float averageStride;
float feetWalked;
float milesWalked;
incagain:
Console.Write("Input height(inches): ");
if(float.TryParse(Console.ReadLine(),out Height))
{
}
else
{
goto incagain;
}
todayagain:
Console.Write("Input Steps(today):");
if(float.TryParse(Console.ReadLine(),out Steps))
{
}
else
{
goto todayagain;
}
CON_FAC = .413F;
FEET_IN_Mile = 5280;
strideLength = Height * CON_FAC;
averageStride = strideLength / 12;
feetWalked = averageStride * Steps;
milesWalked = feetWalked / FEET_IN_Mile;
Console.WriteLine("You walked " milesWalked " miles");