Предмет: Информатика, автор: veronikatyan54p9t0vc

Если я ввожу "fine" или "bad" он пишет оба условия (и fine, и bad). С остальным вроде разобралась. #include ;
using namespace std;
int main()
{
string name;
cout << "What is your name? ";
cin >> name;
cout << "Hello, " << name << endl;
cout << "How are you? ";
string Good;
string Fine;
string Bad;
string mood;
cin >> mood;
if (mood == "Good"||"good") {
cout << "Okay, so do you mind to play with me? ";
}
if (mood == "Fine"||"fine") {
cout << "I don't wanna annoy you but do you mind playing with me? ";
}
if (mood == "Bad"||"bad") {
cout << "Oh, what happened? Can I help you? Do you mind playing with me? It's really fun. You'll like it";
}
return 0;
}

Ответы

Автор ответа: vaash
1
здесь ошибка в том, что логические операции || и && разделяют логические выражения. во всех условиях справа от || стоит просто строка (непустая строка в с++ считается за истину, поэтому все три условия выполняются), а нужно везде дописать mood == . то есть одно условие выглядит так: if (mood == "Good" || mood == "good"). также это не ошибка, но создавать переменные Good, Fine и Bad в этой программе не нужно, так как ты их не используешь. и ошибка в английском) в первом условии должно быть mind playing, а не mind to play. 

veronikatyan54p9t0vc: Когда я их не создавала программа мне выдавала ошибку что-то вроде "неизвестный идентификатор".
vaash: ну дело в том, что ты их не используешь в программе
veronikatyan54p9t0vc: В смысле?
vaash: кстати, соль вся в том, что переменные также могут быть логичческими выражениями. для чисел 0 - ложь, а любое другое число - истина, для строк пустая строка - ложь, непустая - истина. поэтому в твоей программе выполняются все три условия
vaash: ну ты не вводищь эти переменные, не изменяешь их и не выводишь
veronikatyan54p9t0vc: Всё, поняла, благодарю.
vaash: не за что! рад был помочь)
veronikatyan54p9t0vc: Как мне добавить исключения?
veronikatyan54p9t0vc: Можно написать, что mood не равен good||fine||bad?
veronikatyan54p9t0vc: Что не так? try {
string mood;
if (mood == "Good"| mood == "good"| mood == "Fine"| mood == "fine"| mood == "Bad"| mood == "bad") {
throw "O-ops";
}
}
catch (string mood) {
cout < }
Похожие вопросы
Предмет: Математика, автор: shehiash