#c# #visual-studio
#c# #visual-studio
Вопрос:
У меня есть задание для школы на C #. У меня возникла эта проблема со следующим кодом (пример)
static void Main()
{
do
{
Console.Write("Amount of centimeters?: ");
double centimeters = double.Parse(Console.ReadLine());
double meters = centimeters / 100;
Console.WriteLine($"Amount of meters: {meters}");
int wholeMeters = (int)meters;
Console.WriteLine($"Amount of whole meters: {wholeMeters}");
}while (true);
}
Результат:
- Количество сантиметров?: 350
- Количество метров: 3,5
- Количество целых метров: 3
- Количество сантиметров?: 50
- Количество метров: 0,5
- Количество целых метров: 0
Если результат дает 0 для «Количества целых метров», я не хочу показывать строку «Количество целых метров:» в консоли.
Вот так:
- Количество сантиметров?: 50
- Количество метров: 0,5
Как я могу этого добиться, используя только пространство имен System?
Комментарии:
1. как насчет использования
if
2. Вопрос также может быть, если
x != 0
илиx > 0
?
Ответ №1:
Вы наверняка узнаете о структурах управления в самом ближайшем будущем. Просто проверьте значение вашего wholeMeters
поля и действуйте в соответствии с результатом
if(wholeMeters != 0)
Console.WriteLine($"Amount of whole meters: {wholeMeters}");
Ответ №2:
На самом деле это было мое упражнение, и я нашел результат, выполнив код снова шаг за шагом (мне потребовался 1 день !!! :))
static void Main()
{
do
{
Console.Write("Timespan in seconds?: ");
int timeInSeconds;
if (int.TryParse(Console.ReadLine(), out timeInSeconds))
{
Console.WriteLine("This is:");
double amountOfDays = timeInSeconds / 86400;
if (amountOfDays != 0)
Console.WriteLine($"- {(int)amountOfDays} days");
double amountOfHours = timeInSeconds / 3600 - ((int)amountOfDays * 24);
if (amountOfHours != 0)
Console.WriteLine($"- {(int)amountOfHours} hours");
double amountOfMinuts = timeInSeconds / 60 - ((int)amountOfHours * 60) - ((int)amountOfDays * 24 * 60);
if (amountOfMinuts != 0)
Console.WriteLine($"- {(int)amountOfMinuts} minuts");
double amountOfSeconds = timeInSeconds - ((int)amountOfMinuts * 60) - ((int)amountOfHours * 60 * 60) - ((int)amountOfDays * 24 * 60 * 60);
if (amountOfSeconds != 0)
Console.WriteLine($"- {(int)amountOfSeconds} seconds");
}
else
{
Console.WriteLine("Please enter a positive integer!");
}
} while (true);
}
}
- Временной интервал в секундах?: 34567788
- Это:
- 400 дней
- 2 часа
- 9 минут
- 48 секунд
- Это:
- Временной интервал в секундах?: 34567
- Это:
- 9 часов
- 36 минут
- промежуток времени 7 секунд в секундах?: 2345 Это:
- 39 минут
- 5 секунд
- Это:
- Временной интервал в секундах?: 45
- Это:
- 45 секунд
- Это:
- Временной интервал в секундах?: двадцать
- Пожалуйста, введите положительное целое число!
Я знал, что должен использовать оператор if, но мои (двойные) переменные были объявлены в начале кода, а не непосредственно перед каждым вычислением.
В любом случае спасибо за помощь!