Можно ли установить несколько условий для цикла?

PHP56

vim /etc/httpd/conf/httpd.conf

LoadModule php5_module        libexec/apache/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
-1
задан Ronnie S. 13 July 2018 в 04:49
поделиться

3 ответа

Ключевой концепцией, которую следует иметь в виду, является то, что входная переменная может иметь только одно значение во времени. В случае вашего кода вы хотите:

  • продолжить цикл, если значение input не равно 1, а
  • продолжить цикл, если значение input не равно 2,
  • , и в любом другом случае завершите цикл

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

В частности, вы можете использовать логические операторы != и &&, чтобы сказать:

продолжить цикл, когда вход не равен 1 или 2

То же самое, что сказать:

продолжить цикл, когда вход не 1 и не 2

Это может можно добиться, обновив условие цикла в коде следующим образом:

do {
    cin>>input;
    switch(input)
    {
    case 1:
        {
            cout<<"OK"<<endl;
            break;
        }
    case 2:
        {
            cout<<"what"<<endl;
            break;
        }
    default:
        {
            cout<<"INVALID INPUT\n"<<endl;
            break;
        }
    }

// Only allow the loop to continue if input is something other than 1 
// or 2, ie not 1 and not 2
} while(input!=1 && input!=2);
1
ответ дан Dacre Denny 17 August 2018 в 13:40
поделиться
  • 1
    Должен сказать, мне уже нравится это сообщество. Спасибо, ответили на мой вопрос, как только я выразился и с полным объяснением, как и почему я испортил. Еще раз благодарю вас за помощь, все здесь просто сделали мой день – Ronnie S. 13 July 2018 в 05:06
  • 2
    Вы более чем приветствуете, пожалуйста, подумайте над ответом на вопрос, если вы сочтете это полезным :-) – Dacre Denny 13 July 2018 в 05:07

Я думаю, что вам нужно здесь и выражение '& amp; & amp;' вместо или '| |». Например, когда вы вводите 1, условие input! = 2 равно True, и поэтому цикл продолжается. С вводом и выводом! = 1 & amp; & amp; input! = 2, цикл будет отменен, если ввод будет 1 или 2. Но я смущен, что точка цикла, если вы не хотите, чтобы он итерации неопределенно?

0
ответ дан Ach113 17 August 2018 в 13:40
поделиться
  • 1
    Я просто хотел проверить некоторые знания, которые я узнал несколько лет назад, в полуполезном сценарии, который я скоро удалю в любом случае, - не удалось выполнить собственный тест ха-ха. Спасибо, хотя, безусловно, это тот ответ, который я искал – Ronnie S. 13 July 2018 в 05:02

Вы можете создать условие цикла с любым выражением, которое оценивается как true/false, без жесткого ограничения на количество сравнений, которое вы можете поместить там.

Однако ваш код проверяет одну и ту же переменную для двух разных значений с «или», который всегда будет возвращать true, поскольку переменная может содержать только одно значение. Если input - 1, он не может быть 2, если он 2 не может быть 1, поэтому ваше выражение всегда будет true, и это бесконечный цикл.

Возможно, вы хотели использовать && ('и' gate) вместо ||.

1
ответ дан Havenard 17 August 2018 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: