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

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

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

Показать сообщение отдельно
Spectral-Owl
 Аватар для Spectral-Owl
517 / 497 / 34
Регистрация: 29.06.2010
Сообщений: 1,448
Завершенные тесты: 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?
 
Текущее время: 02:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru