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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Непонятная реакция компилятора на cout и оператор << http://www.cyberforum.ru/cpp-beginners/thread933764.html
Вот простой код на C++. Дело в том что этой строчке(выделено жирным), должна появиться на экране вначале первая строка, после нее слово "Привет". А получается что на экране дублируется первая...
C++ Передача параметров в многопоточном приложении Здравствуйте! Есть вот такой рабочий кусочек кода: Thread^ myThread1 = gcnew Thread(gcnew ThreadStart(this,&Form1::sayHello)); myThread1->Start(); Здесь вызывается в потоке myTHread1 функция... http://www.cyberforum.ru/cpp-beginners/thread933735.html
Выведите в выходной файл округленное до n знаков после десятичной точки число E C++
Как пишутся очень короткие программы на C++ или C (менее 150 символов, не считая пробелов и табуляций)? Например, задача Выведите в выходной файл округленное до n знаков после десятичной точки число...
Как найти определенные байты в процесе? C++
Всем привет помогите мне нужно найти байты в процесе Как это реализовать код в DLL Байты 33 E6 00 00 00 00 01 00 00 00 0D
C++ Рекурсивная функция для определения палиндромов http://www.cyberforum.ru/cpp-beginners/thread933638.html
Нужно написать программу , которая с помощью рекурсивной функции определяет, является ли строка палиндромом (радар, потоп, т.е. слова которые читаются так же, если их читать справа налево). Программу...
C++ Почему не работает? Здравствуйте уважаемые программисты! Вроде должно работать. Программа считает среднее арифметическое значение: Вот код. #include "stdafx.h" #include <iostream> // для cout, cin, endl, cin.get();... подробнее

Показать сообщение отдельно
Spectral-Owl
561 / 541 / 48
Регистрация: 29.06.2010
Сообщений: 1,548
Завершенные тесты: 1
09.10.2013, 12:20
не забываем про логические операторы & и |, способ работы которых тоже чуток отличается от их "двойных собратьев"

пример:
Кликните здесь для просмотра всего текста
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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru