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

Логический оператор ИЛИ - C++

Восстановить пароль Регистрация
 
oleska-feska
 Аватар для oleska-feska
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 22
11.02.2014, 22:24     Логический оператор ИЛИ #1
Всем привет,на днях преподаватель задал интересный вопрос: "Почему в С++ для оператора ИЛИ используют "|| ",а не "|" ?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
11.02.2014, 22:27     Логический оператор ИЛИ #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
потому что "|" - это побитовое ИЛИ
ValeryS
Модератор
6402 / 4868 / 447
Регистрация: 14.02.2011
Сообщений: 16,158
11.02.2014, 22:28     Логический оператор ИЛИ #3
Цитата Сообщение от oleska-feska Посмотреть сообщение
на днях преподаватель задал интересный вопрос:
а почему для сравнения используют == а не =
ustus_alex
6 / 6 / 1
Регистрация: 22.11.2013
Сообщений: 110
Завершенные тесты: 1
11.02.2014, 22:32     Логический оператор ИЛИ #4
Цитата Сообщение от ValeryS Посмотреть сообщение
а почему для сравнения используют == а не =
потому что = это оператор присваиванивания
== - оператор сравнения
ValeryS
Модератор
6402 / 4868 / 447
Регистрация: 14.02.2011
Сообщений: 16,158
11.02.2014, 22:36     Логический оператор ИЛИ #5
ustus_alex,
и как ты думаешь я это не знаю?
сравни
Цитата Сообщение от oleska-feska Посмотреть сообщение
Почему в С++ для оператора ИЛИ используют "|| ",а не "|
Цитата Сообщение от ValeryS Посмотреть сообщение
почему для сравнения используют == а не =
похоже?
так создатели языка решили
хотя кто то мне говорил что сейчас можно писать OR вместо|| и AND вместо &&
сам не пробовал, ничего сказать не могу
ustus_alex
6 / 6 / 1
Регистрация: 22.11.2013
Сообщений: 110
Завершенные тесты: 1
11.02.2014, 22:54     Логический оператор ИЛИ #6
Цитата Сообщение от ValeryS Посмотреть сообщение
ustus_alex,
и как ты думаешь я это не знаю?
сравни


похоже?
так создатели языка решили
хотя кто то мне говорил что сейчас можно писать OR вместо|| и AND вместо &&
сам не пробовал, ничего сказать не могу
нет, не похоже... Поспешишь, - Форумчан насмешишь

Ради интереса попробовал сейчас на двух компиляторах с поддержкой с++11
Visual Studio 2012 & Intel C++ Compiler XE 14.0
Ничего из такого по умолчанию не работает...

ну, разве только после:
#define OR ||
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
11.02.2014, 22:59     Логический оператор ИЛИ #7
Цитата Сообщение от ustus_alex Посмотреть сообщение
нет, не похоже... Поспешишь, - Форумчан насмешишь
вот уж действительно
ValeryS
Модератор
6402 / 4868 / 447
Регистрация: 14.02.2011
Сообщений: 16,158
11.02.2014, 23:13     Логический оператор ИЛИ #8
Цитата Сообщение от ustus_alex Посмотреть сообщение
Поспешишь, - Форумчан насмешишь
сейчас проверил на работающем проекте, посему на имена не смотри студия 2008
C++
1
2
3
#include <ciso646>
.............................
 bool a= hWnd==0 and message!=0;
все робит
правда ошибся не AND а and

Добавлено через 3 минуты
ради интереса содержимое файла
ciso646
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// ciso646 standard header
#pragma once
#ifndef _CISO646_
#define _CISO646_
#include <yvals.h>
 
#include <iso646.h>
#endif /* _CISO646_ */
 
/*
 * Copyright (c) 1992-2007 by P.J. Plauger.  ALL RIGHTS RESERVED.
 * Consult your license regarding permissions and restrictions.
 V5.03:0009 */
ну и iso646.h
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
#pragma once
#ifndef _ISO646
#define _ISO646
 
#if !defined(__cplusplus) || defined(_MSC_EXTENSIONS)
 #define and    &&
 #define and_eq &=
 #define bitand &
 #define bitor  |
 #define compl  ~
 #define not    !
 #define not_eq !=
 #define or     ||
 #define or_eq  |=
 #define xor    ^
 #define xor_eq ^=
#endif /* !__cplusplus || _MSC_EXTENSIONS */
 
#endif /* _ISO646 */
 
/*
 * Copyright (c) 1992-2007 by P.J. Plauger.  ALL RIGHTS RESERVED.
 * Consult your license regarding permissions and restrictions.
 V5.03:0009 */
те же define

хотя мне это не так сильно и нужно, не привык-с
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2014, 23:19     Логический оператор ИЛИ
Еще ссылки по теме:

C++ Логический оператор AND
C++ Ошибка: не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
C++ А можно в функцию, или перегруженный оператор передать ссылку на копию?
Можно ли задать оператор сравнения (< или >) для string C++
Составить логический калькулятор (конъюнкция, дизъюнкция, отрицание) на C или C++ C++

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

Или воспользуйтесь поиском по форуму:
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
11.02.2014, 23:19     Логический оператор ИЛИ #9
Цитата Сообщение от ustus_alex Посмотреть сообщение
ну, разве только после:
#define OR ||
и
Цитата Сообщение от ValeryS Посмотреть сообщение
#include <ciso646>

Не по теме:

Я сам переходил с Delphi на VC++ и в коде на первых парах приятней было бы видеть это, но сейчас синтаксис в С++ мне кажется на много более изящным (если забыть про массивы, хотя и с ними то только на первых парах не привычно только было). Как вы думаете зачем вот это все сделано?



Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
хотя мне это не так сильно и нужно, не привык
а я так уже отвык
Yandex
Объявления
11.02.2014, 23:19     Логический оператор ИЛИ
Ответ Создать тему
Опции темы

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