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
Ключевой концепцией, которую следует иметь в виду, является то, что входная переменная может иметь только одно значение во времени. В случае вашего кода вы хотите:
input
не равно 1, а input
не равно 2, . Чтобы продолжить цикл для указанных выше двух случаев, вы можете комбинировать логические операторы для достижения этого.
В частности, вы можете использовать логические операторы !=
и &&
, чтобы сказать:
продолжить цикл, когда вход не равен 1 или 2
blockquote>То же самое, что сказать:
продолжить цикл, когда вход не 1 и не 2
blockquote>Это может можно добиться, обновив условие цикла в коде следующим образом:
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);
Я думаю, что вам нужно здесь и выражение '& amp; & amp;' вместо или '| |». Например, когда вы вводите 1, условие input! = 2 равно True, и поэтому цикл продолжается. С вводом и выводом! = 1 & amp; & amp; input! = 2, цикл будет отменен, если ввод будет 1 или 2. Но я смущен, что точка цикла, если вы не хотите, чтобы он итерации неопределенно?
Вы можете создать условие цикла с любым выражением, которое оценивается как true/false
, без жесткого ограничения на количество сравнений, которое вы можете поместить там.
Однако ваш код проверяет одну и ту же переменную для двух разных значений с «или», который всегда будет возвращать true, поскольку переменная может содержать только одно значение. Если input
- 1
, он не может быть 2
, если он 2
не может быть 1
, поэтому ваше выражение всегда будет true
, и это бесконечный цикл.
Возможно, вы хотели использовать &&
('и' gate) вместо ||
.