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

Чем оператор || отличается от оператора && ? - C++

Восстановить пароль Регистрация
 
Сергей_Солопов
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 20
05.08.2013, 14:33     Чем оператор || отличается от оператора && ? #1
Приведите простые примеры, никак до мозгов не доходит)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2013, 14:33     Чем оператор || отличается от оператора && ?
Посмотрите здесь:

Проблема с проверкой условия цикла for( int i=2; !((n%i||d%i)&&!(n%i&&d%i))==0 ; i++) C++
В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9& C++
C++ Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
C++ в чем разница между void f(int &n) и void f(int &&n)
ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dima55501
 Аватар для dima55501
29 / 33 / 6
Регистрация: 14.07.2013
Сообщений: 146
05.08.2013, 14:36     Чем оператор || отличается от оператора && ? #2
Оператор && - логическое И, || - логическое или.
Например есть условие
if(a == 0 && b == 0)
выполнится тогда, когда и а, и b равны 0.

Если условие
if(a == 0 || b == 0)
выполнится, если или а, или b равно 0.
Spectral-Owl
 Аватар для Spectral-Owl
516 / 496 / 34
Регистрация: 29.06.2010
Сообщений: 1,448
Завершенные тесты: 1
09.10.2013, 12:20     Чем оператор || отличается от оператора && ? #3
не забываем про логические операторы & и |, способ работы которых тоже чуток отличается от их "двойных собратьев"

пример:
Кликните здесь для просмотра всего текста
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
int[] arr=new int[10];
            bool flag = false;
 
            Console.WriteLine("проверка оператора &&, нажмите любую клавишу");
            Console.ReadKey();
 
            try
            {
                if (flag && arr[15] == 1) ; //обращение к не существующему индексу, результат условия не интересует
                Console.WriteLine(" ..выполненно без ошибок");//выводится эта строка
            }
            catch  {  Console.WriteLine(" ..ошибока при проверке"); }//сюда не попадаем
 
            Console.WriteLine();
            Console.WriteLine("проверка оператора &, нажмите любую клавишу");
            Console.ReadKey();
 
            try
            {
                if (flag & arr[15] == 1) ; //обращение к не существующему индексу, результат условия не интересует
                Console.WriteLine(" ..выполненно без ошибок");//сюда не попадаем
            }
            catch { Console.WriteLine(" ..ошибока при проверке"); }//выводится эта строка
 
            Console.Read();


пояснение:
одиночные операторы (& и |) проверяют И левую, И правую часть условия, и уже потом возвращает значение логической операции.

двойные операторы (&& и ||) проверяют сначала левую часть условия, и если результата проверки достаточно для того чтоб вернуть результат, на правую даже не смотрят, ведь действительно если находится логическое И, то зачем проверять правую часть условия, если левая - false?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
09.10.2013, 12:51     Чем оператор || отличается от оператора && ? #4
Цитата Сообщение от Spectral-Owl Посмотреть сообщение
не забываем про логические операторы & и |
& и | не являются логическими операторами ни в коем разе. Это битовое И и битовое ИЛИ.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
09.10.2013, 12:53     Чем оператор || отличается от оператора && ? #5
Цитата Сообщение от Spectral-Owl Посмотреть сообщение
не забываем про логические операторы & и |
Они побитовые.

Цитата Сообщение от Spectral-Owl Посмотреть сообщение
двойные операторы (&& и ||) проверяют сначала левую часть условия
Называется "ленивые вычисления".
Spectral-Owl
 Аватар для Spectral-Owl
516 / 496 / 34
Регистрация: 29.06.2010
Сообщений: 1,448
Завершенные тесты: 1
09.10.2013, 13:53     Чем оператор || отличается от оператора && ? #6
Цитата Сообщение от ForEveR Посмотреть сообщение
& и | не являются логическими операторами ни в коем разе. Это битовое И и битовое ИЛИ.
хм... и скажите чем битовая операция И между логическими значениями (а именно логические значения являются частью условий) отличается от логической операции - конъюнкции? названием?)

по моему обозначать понятия необходимо по текущему функциональному применению, а не по изначально задуманному. ведь когда, к примеру, кореец съедает собаку - он же ест не друга и охранника, а всего-лишь блюдо) так и здесь:

int i = 12 & 7; - битовая операция
if (a & b); - логическая операция

хотя... это всего-лишь моё скромное ИМХО)
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
09.10.2013, 13:55     Чем оператор || отличается от оператора && ? #7
Spectral-Owl, Термины различные. По факту для булевых значений отличий действительно нет, кроме тех которые вы указали. Однако операторы & | в С++ являются Bitwise operators (bitwise and и bitwise or соответственно).
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
09.10.2013, 14:32     Чем оператор || отличается от оператора && ? #8
А где находятся эти самые биты, и как это проявляется в прграммировании?
Spectral-Owl
 Аватар для Spectral-Owl
516 / 496 / 34
Регистрация: 29.06.2010
Сообщений: 1,448
Завершенные тесты: 1
09.10.2013, 14:43     Чем оператор || отличается от оператора && ? #9
о! ща как придумаю что-нибудь...

гхм! Биты - это элементарные частицы, которые находятся в ядрах атомов. Они нормализуют количество протонов и эллектронов, и изменяя значения битов можно заряжать молекулы... блин как то слишком бредово)

если без шуток, то ближайшее понятие к биту, на мой взгляд - цифра. только цифрами называют части числа в 10-чной системе, и соответственно цифры могут принимать всего 10 значений (от 0 до 9)
а бит - это эллемент числа в двоичной системе, и соответственно он может принимать только два значения (0 и 1).

про различные преобразования из одной системы в другую рассказывать не буду, открой калькулятор виндовый, в нём всё есть) или попроси у доблестных модераторов ссылку куда-нибудь в википедию)
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
09.10.2013, 16:07     Чем оператор || отличается от оператора && ? #10
Цитата Сообщение от Spectral-Owl Посмотреть сообщение
и скажите чем битовая операция И между логическими значениями (а именно логические значения являются частью условий) отличается от логической операции - конъюнкции? названием?)
Между логическими - ничем. Но в условиях же не только логические, но и другие, которые приводятся к логическим.
C++
1
2
3
int a = 1, b = 2;
if (a & b)
  std::cout << "i bet u use m$'s compiler";
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2013, 16:24     Чем оператор || отличается от оператора && ?
Еще ссылки по теме:

Оператор && C++
C++ Оператор if и логическая операция И (AND) &&
Friend ostream& operator<<(ostream& stream, CArr& obj); C++

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

Или воспользуйтесь поиском по форуму:
Spectral-Owl
 Аватар для Spectral-Owl
516 / 496 / 34
Регистрация: 29.06.2010
Сообщений: 1,448
Завершенные тесты: 1
09.10.2013, 16:24     Чем оператор || отличается от оператора && ? #11
Цитата Сообщение от Somebody Посмотреть сообщение
int a = 1, b = 2; if (a & b)
мне нельзя так делать, религия не позволяет =(
я обычно на шарпе кодю, а он не позволяет ставить в условия int значения) хз как я в этой ветке оказался "
Yandex
Объявления
09.10.2013, 16:24     Чем оператор || отличается от оператора && ?
Ответ Создать тему
Опции темы

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