C # программа закрывается без печати окончательного оператора WriteLine - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь написать программу на C # (в Visual Studio), которая принимает некоторые цифры в качестве ввода с клавиатуры и печатает, какая из них самая маленькая и самая большая. Это домашнее задание, и я собираюсь использовать только те вещи, которые рассматриваются в классе до этого момента. Итак, я прекрасно понимаю, что это можно сделать гораздо проще с помощью массива и методов MATH.min и max. Тем не менее, цель этой программы - просто практиковать логику if / else. Во всяком случае, логика не моя проблема. Приведенный ниже код работает так, как задумано, до тех пор, пока не будет введен последний введенный пользователем номер, затем он просто закрывается без печати окончательного оператора записи, используемого для отображения результатов. Есть ли что-то, что нужно сделать, чтобы это исправить? Спасибо!

using System;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            double maxNum = 0;
            double minNum = int.MaxValue;

            int numToEnter;
            int enterCounter = 0;

            double currentNum;

            Console.Write("How many numbers will be entered?: ");
            numToEnter = int.Parse(Console.ReadLine());

            while (enterCounter < numToEnter)
            {
                Console.Write("Enter a positive number: ");
                currentNum = double.Parse(Console.ReadLine());
                if (currentNum >= 0)
                {
                    if (currentNum >= maxNum)
                    {
                        maxNum = currentNum;
                    }

                    if (currentNum < minNum)
                    {
                        minNum = currentNum;
                    }

                    enterCounter++;
                }
                else
                {
                    Console.Write("Please enter a positive number: ");
                }


            }

            Console.WriteLine("The largest number is: {0}. The lowest number is: {1}", maxNum, minNum);
        }

    }
}

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Добавить

Console.ReadLine();

После

Console.WriteLine("The largest number is: {0}. The lowest number is: {1}", maxNum, minNum);
0 голосов
/ 08 сентября 2018

Ваша проблема, вероятно, связана с тем, как вы тестируете программу. Я не могу быть уверен, но один из способов исправить это с помощью этого в конце вашего основного.

Console.ReadLine();

Вы запускаете его с отладкой или без отладки? Я подозреваю, что вы работаете с отладкой, которая объясняет, почему это происходит. Существует разница между «Начать с отладки» и «Начать без», вообще говоря, отладка приведет к немедленному завершению работы приложения, а «Сборка релиза» - нет. Таким образом, вы можете использовать любой метод Console.ReadLine (), чтобы остановить его, но если ваш инструктор требует сборки выпуска, то ваш код в порядке.

F5 = Запуск с отладкой CTRL + F5 = Запуск без отладки (используется для сборок релизов) или если вы не знаете, как использовать точки останова.

Лично я рекомендую использовать цикл for с этим экземпляром.

for (enterCounter; enterCounter <= numToEnter; enterCounter++)
{
     //Run This code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...