Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gnuvse
6 / 6 / 1
Регистрация: 09.11.2011
Сообщений: 101
#1

Программа игнорирует условия - C++

24.03.2012, 15:18. Просмотров 392. Ответов 5
Метки нет (Все метки)

Всем привет.
Проблема. При выполнение данной программы выводит результат 4-х операций. Почему if не работает? Я имею ввиду, если operation == "+", то должно выполнятся тело if и всё, а он всё считает.

Пример: + 2 1

= 3
= 1
= 2
= 2


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
using namespace std;
 
//Простой калькулятор. Синтаксис Лисп
 
int main()
{
    double val1, val2;
    string operation;
 
    cout << "Enter symbol ('+', '-', '*', '/', plus, minus, mul, div) and value1, value2.\n";
    cout << "Example: + 100 20; plus 100 20\n";
    cin >> operation >> val1 >> val2;
 
    if (operation == "+" || operation == "plus");
        cout << "\n= " << val1 + val2;
    if (operation == "-" || operation == "minus");
        cout << "\n= " << val1 - val2;
    if (operation == "*" || operation == "mul");
        cout << "\n= " << val1 * val2;
    if (operation == "/" || operation == "div");
        cout << "\n= " << val1 / val2;
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2012, 15:18     Программа игнорирует условия
Посмотрите здесь:

Программа игнорирует gets() - C++
#include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;string&gt; #include &lt;iostream&gt; using namespace std; struct NOTE { char...

Программа игнорирует пробел. - C++
Мне нужно написать такую программу: Заменить всюду в файле один заданный набор символов на другой(с учётом разницы в их длине). ...

программа игнорирует break - C++
скажите кто нибудь почему программа игнорирует break'и? #include &lt;iostream.h&gt; int menu(); int main() { int choice=menu(); ...

Почему-то программа игнорирует условие if/else - C++
Дана задача: Даны два массива: А и B (M и N вводятся с клавиатуры). Необходимо создать третий массив минимально возможного размера, в...

Не работает gets (программа игнорирует операцию ввода) - C++
Помогите. Не работает оператор gets в моей программе! Что делать? Как изменить? Все идет нормально, никаких ошибок. Но когда доходит дело...

Программа всегда считает условия ложными - C++
Здравствуйте, не понимаю почему программа не работает. Ведь всё правильно указано, условия заданы, но программа считает их ложными, оба...

На что программа?точнее какие у нее условия? - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; float fun (float x) {return sqrt(x)+x;} int main () { setlocale...

Программа, переносящая элементы первого массива во второй, при выполнении условия - C++
Программа должна формировать массив y из элементов массива x при выполнении некоторого условия, а так же выводить полученный массив y....

Как сделать, чтобы после выполнения условия, программа не проверяла следующие? - C++
Мне нужно чтобы после вывода текста &quot; нет значений x и z&quot; программа больше ничего не выводила, но после этого она так же пишет &quot; z равен&quot; и...

Почему VS игнорирует if ()? - C++
Отрывок кода: int cr = GetRValue(color); int cg = GetGValue(color); int cb = GetBValue(color); if (cr = 152) { if (cg =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Duha666
50 / 50 / 5
Регистрация: 10.03.2012
Сообщений: 138
24.03.2012, 15:21     Программа игнорирует условия #2
Найдите 10 отличий
C++
1
2
if (operation == "+" || operation == "plus")
if (operation == "+" || operation == "plus");
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.03.2012, 15:23     Программа игнорирует условия #3
gnuvse, точки с запятой уберите(т.е. пустые операторы).
gnuvse
6 / 6 / 1
Регистрация: 09.11.2011
Сообщений: 101
24.03.2012, 15:28  [ТС]     Программа игнорирует условия #4
Цитата Сообщение от Duha666 Посмотреть сообщение
Найдите 10 отличий
C++
1
2
if (operation == "+" || operation == "plus")
if (operation == "+" || operation == "plus");
Оператора ; нету, но я не понимаю к чему это?

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
gnuvse, точки с запятой уберите(т.е. пустые операторы).
Хаха, я даже не заметил, во ошибка ламерская.

Спасибо
Duha666
50 / 50 / 5
Регистрация: 10.03.2012
Сообщений: 138
24.03.2012, 15:29     Программа игнорирует условия #5
К тому, что вы точкой с запятой закрываете if. То есть получается что-то такое:
C++
1
2
3
4
5
6
7
8
if (operation == "+" || operation == "plus");
cout << "\n= " << val1 + val2; // выполнится независимо от результата if-а. Так как не входит в него
if (operation == "-" || operation == "minus");
cout << "\n= " << val1 - val2;
if (operation == "*" || operation == "mul");
cout << "\n= " << val1 * val2;
if (operation == "/" || operation == "div");
cout << "\n= " << val1 / val2;
gnuvse
6 / 6 / 1
Регистрация: 09.11.2011
Сообщений: 101
24.03.2012, 15:31  [ТС]     Программа игнорирует условия #6
Цитата Сообщение от Duha666 Посмотреть сообщение
К тому, что вы точкой с запятой закрываете if. То есть получается что-то такое:
C++
1
2
3
4
5
6
7
8
if (operation == "+" || operation == "plus");
cout << "\n= " << val1 + val2; // выполнится независимо от результата if-а. Так как не входит в него
if (operation == "-" || operation == "minus");
cout << "\n= " << val1 - val2;
if (operation == "*" || operation == "mul");
cout << "\n= " << val1 * val2;
if (operation == "/" || operation == "div");
cout << "\n= " << val1 / val2;
Я уже понял. Спасибо всем (репу поднял)
Yandex
Объявления
24.03.2012, 15:31     Программа игнорирует условия
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru