none
Чем отличаются && и || от & и |? RRS feed

  • Вопрос

  • Чем отличаются && и || от & и |?

    Знаю вопрос лёгкий, хочу уточнить: если одно условие не совпадает то второе условие не проверяется тем самым уменьшая употребительность программы. Это так?



    • Изменено Ziya Ceferov 5 августа 2012 г. 13:58
    5 августа 2012 г. 13:57

Ответы

  • http://msdn.microsoft.com/ru-ru/library/ms173145.aspx
    тут написано.

    "если одно условие не совпадает то второе условие не проверяется тем самым уменьшая употребительность программы."
    в "или", если 1-е условие правильное, то дальше не проверяется ни чего, выполняется блок кода.
    если 1-е не правильное, проверяется второе и тд. пока правильное не попадётся.

    в "и", если 1-е не правильное (фальсе), то и дальше не идёт, блок кода не выполнится.
    проверка идёт до 1-го ложного попадания

    • Изменено INFEL8 5 августа 2012 г. 16:34
    • Помечено в качестве ответа Ziya Ceferov 5 августа 2012 г. 17:17
    5 августа 2012 г. 16:31
  • Да, именно так. && и || -укороченные формы логических операторов И и ИЛИ. Отличие от обычных состоит в том, что второй операнд у них вычисляется лишь в случае необходимости. Т.е если левый оператор в выражении  И-ложь, то второй оператор уже не вычисляется. Операторы & и | используются также в качестве поразрядных операторов, т.е выполняют те же функции, что и логические варианты, но работают на уровне двоичных разрядов.
    • Помечено в качестве ответа Abolmasov Dmitry 24 августа 2012 г. 11:53
    5 августа 2012 г. 16:32

Все ответы

  • http://msdn.microsoft.com/ru-ru/library/ms173145.aspx
    тут написано.

    "если одно условие не совпадает то второе условие не проверяется тем самым уменьшая употребительность программы."
    в "или", если 1-е условие правильное, то дальше не проверяется ни чего, выполняется блок кода.
    если 1-е не правильное, проверяется второе и тд. пока правильное не попадётся.

    в "и", если 1-е не правильное (фальсе), то и дальше не идёт, блок кода не выполнится.
    проверка идёт до 1-го ложного попадания

    • Изменено INFEL8 5 августа 2012 г. 16:34
    • Помечено в качестве ответа Ziya Ceferov 5 августа 2012 г. 17:17
    5 августа 2012 г. 16:31
  • Да, именно так. && и || -укороченные формы логических операторов И и ИЛИ. Отличие от обычных состоит в том, что второй операнд у них вычисляется лишь в случае необходимости. Т.е если левый оператор в выражении  И-ложь, то второй оператор уже не вычисляется. Операторы & и | используются также в качестве поразрядных операторов, т.е выполняют те же функции, что и логические варианты, но работают на уровне двоичных разрядов.
    • Помечено в качестве ответа Abolmasov Dmitry 24 августа 2012 г. 11:53
    5 августа 2012 г. 16:32