Нужна помощь при вводе данных пользователем

#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");