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

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

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

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

24.03.2012, 15:18. Просмотров 376. Ответов 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     Программа игнорирует условия
Посмотрите здесь:

программа игнорирует break C++
Программа игнорирует пробел. C++
C++ Строки (игнорирует getline)
C++ Игнорирует строку с getline
Программа игнорирует gets() C++
Не работает gets (программа игнорирует операцию ввода) C++
На что программа?точнее какие у нее условия? C++
C++ Как сделать, чтобы после выполнения условия, программа не проверяла следующие?
C++ Программа всегда считает условия ложными
C++ Программа, переносящая элементы первого массива во второй, при выполнении условия
Почему-то программа игнорирует условие if/else C++
C++ Почему VS игнорирует if ()?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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++
3584 / 1364 / 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     Программа игнорирует условия
Ответ Создать тему
Опции темы

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