Запрашивать у пользователя целое число 2> и> 9 в C - PullRequest
0 голосов
/ 17 января 2019

Действительно новый вопрос о C ...

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

  int between_2_and_8(string prompt)
{
    int n;
    do
    {
        n = get_int("%s", prompt);
    }
    while (n > 8);
    return n;
}

, но без удачи, добавив 2 параметра. Вот фрагмент:

int between_2_and_8(string prompt)
{
    int n;
    do
    {
        n = get_int("%s", prompt);
    }
    while (n > 8);
    return n;

    while (n < 2);
    return n;

}

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Вы никогда не введете проверку условия while(n < 2), так как выполняется либо предыдущая проверка условия, либо return n. то есть. он зацикливается на while (n > 8), когда условие истинно, или return n выполняется, когда условие не выполняется. Таким образом, он никогда не выполнит вторую проверку состояния while (n < 2).

Попробуйте реализовать логическое ИЛИ в одном цикле while, как показано ниже

int between_2_and_8(string prompt)
{
    int n;
    do
    {
        n = get_int("%s", prompt);
    }
    while (n < 3 || n > 8);// Loops around until n is either less than 2 or greater than 8
    return n;

}

Редактировать : исправления, сделанные при проверке состояния

0 голосов
/ 17 января 2019

Вы можете добавить два условия, чтобы продолжить цикл do-while .

Измените ваш код, как показано ниже:

int between_2_and_8(string prompt)
{
    int n;
    do
    {
        n = get_int("%s", prompt);
    }
    while (n < 3  || n > 8); // continue looping till either n is less than 3 or greater than 8
    return n;
}

EDIT: Исправленные условия

...