Я запутался в том, как делать ИЛИ, пока делаю Boolean. & Quot; || & Quot; это не будет работать для меня по какой-то причине

вот мой код Я хочу, чтобы оператор if работал, если пользователь вводит Да или Да. Когда я вынимаю || и «да» Моя программа работает нормально, и когда пользователь вводит «Да», это работает. Я хотел сделать свою программу лучше, а также иметь ее так, чтобы, когда они набирали «да», работали. Может кто-нибудь помочь мне понять это? Спасибо!

{

cout<<"Would you like to begin?\n";cin>>answer;

if (answer=="Yes" || "yes") {

continue_1=true;

google=false;

}

else {

if (answer=="No" || "no" ) {

cout <<endl<< "have a nice day\n";

google= false;

return 0;

}

-6

Решение

Вы выполняете или в строках, а не в запросе — вы хотите:

    if (answer=="No" || answer=="no" ) {

Чтобы быть более общим об этом, вы можете преобразовать строку в нижний регистр, а затем сравнить ее с «нет», который будет обрабатывать «Нет», «НЕТ» и «нет» для вас.

Довольно распространенный альтернативный подход — просто проверить, что первый символ в строке — это N или n. Это также поднимает такие вещи, как Нет и т. Д.

4

Другие решения

if (answer=="Yes" ||  answer == "yes")

Вам нужно использовать == в обеих проверках. К сожалению это не работает иначе

2

С чего начать?

Приоритет — см. http://en.cppreference.com/w/cpp/language/operator_precedence
Сравнение строк = см. http://www.cplusplus.com/reference/cstring/strcmp/

И узнать об указателях

1

Правильный синтаксис:

if (answer=="Yes" || answer=="yes")

Он не несет ничего с первой стороны, OR и AND могут использоваться для смешивания различных значений. как это:

if (answer=="Yes" || otherAnswer=="no")
0

Я бы предпочел сделать это с меньшим количеством ветвлений:

cout<<"Would you like to begin?\n";
cin>>answer;

if (answer== "No" || answer== "no")
return 0;

if (answer!= "Yes" && answer!= "yes" )
return error; // only answer with yes or no

// here, we know that the answer is yes
0
По вопросам рекламы [email protected]