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

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

Войти
Регистрация
Восстановить пароль
 
Сергей_Солопов
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 20
#1

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

05.08.2013, 14:33. Просмотров 1250. Ответов 10
Метки нет (Все метки)

Приведите простые примеры, никак до мозгов не доходит)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2013, 14:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чем оператор || отличается от оператора && ? (C++):

Чем отличается оператор присваивания (=) от оператора сравнения (==)? - C++
чем они отличаются?

Объяснить, что делает операция *& и чем она отличается от простого указателя? - C++
Пожалуйста объясните что делает этот оператор...чем он отличается от простого указателя?

Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;) - C++
Хочу специализировать swap для своего класса. Получаю ошибку. Вот код:#ifndef A_H #define A_H #include &lt;string&gt; class A { ...

Не выполняется логический оператор && - C++
Добрый день. В данном коде #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstdlib&gt; using namespace std; int main(){ ...

Оператор if и логическая операция И (AND) && - C++
Вод подскажите что будет быстрей обрабатываться процессором: if(!a&amp;&amp;!b) { a+b; } или

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration? - C++
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp; outs, const Rational&amp;); - invalid function declaration. ...

10
dima55501
30 / 34 / 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.
3
Spectral-Owl
561 / 541 / 48
Регистрация: 29.06.2010
Сообщений: 1,544
Завершенные тесты: 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?
1
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
09.10.2013, 12:51 #4
Цитата Сообщение от Spectral-Owl Посмотреть сообщение
не забываем про логические операторы & и |
& и | не являются логическими операторами ни в коем разе. Это битовое И и битовое ИЛИ.
2
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,533
Завершенные тесты: 1
09.10.2013, 12:53 #5
Цитата Сообщение от Spectral-Owl Посмотреть сообщение
не забываем про логические операторы & и |
Они побитовые.

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

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

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

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

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

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

про различные преобразования из одной системы в другую рассказывать не буду, открой калькулятор виндовый, в нём всё есть) или попроси у доблестных модераторов ссылку куда-нибудь в википедию)
0
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,197
Завершенные тесты: 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";
1
Spectral-Owl
561 / 541 / 48
Регистрация: 29.06.2010
Сообщений: 1,544
Завершенные тесты: 1
09.10.2013, 16:24 #11
Цитата Сообщение от Somebody Посмотреть сообщение
int a = 1, b = 2; if (a & b)
мне нельзя так делать, религия не позволяет =(
я обычно на шарпе кодю, а он не позволяет ставить в условия int значения) хз как я в этой ветке оказался "
0
09.10.2013, 16:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2013, 16:24
Привет! Вот еще темы с ответами:

в чем разница между void f(int &n) и void f(int &&n) - C++
:help:

В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9& - C++
В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура...

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка? - C++
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size; ix++) cout &lt;&lt; setw(5) &lt;&lt; ptr; // вывод элементов...

Оператор && - C++
&amp;&amp;- что это значит ?


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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