І АБО парадак аперацый

Што з'яўляецца эквівалентам гэтай заявы?

if(cond1 AND cond2 AND cond3 або cond4 AND cond5 AND cond6)

Гэта

if((cond1 AND cond2 AND cond3) або (cond4 AND cond5 AND cond6))

або

if(cond1 AND cond2 AND (cond3 або cond4) AND cond5 AND cond6)

або

if(((cond1 AND cond2 AND cond3) або cond4) AND cond5 AND cond6)

Эст ...

Гэта было тое, што я заўсёды быў спалоханы набліжаецца, да якога я проста атачаць ўмовы ў дужках () . Было б вельмі добра, калі б мой розум мог быць вырашана.

5
Выкарыстоўваючы круглыя ​​дужкі, каб неадназначнасць гэта выдатная ідэя.
дададзена аўтар Carl Norum, крыніца
Выкарыстоўваючы круглыя ​​дужкі, каб неадназначнасць гэта выдатная ідэя.
дададзена аўтар Carl Norum, крыніца

10 адказы

Добры спосаб запомніць гэта думаць пра гэта матэматычна.

  • AND as * (multiply)
  • OR as + (addition)
  • TRUE as 1
  • FALSE as 0

Так думаць пра гэта як просты матэматыцы вы атрымаеце гэта:

  • 0 * 0 = 0
  • <�Літый> 1 * 0 = 0 </літый>
  • 1 * 1 = 1
  • <�Літый> 0 + 0 = 0 </літый> <�Літый> 1 + 0 = 1 </літый> <�Літый> 1 + 1 = 1 </літый>

Адзінае, што можа быць ледзь-ледзь бянтэжыць тое 1 + 1 = 1 , але крыху не можа пайсці вышэй 1 .

Так з гэтым на ўвазе, вы можаце ўжыць гэтую логіку:

<�Код> калі (cond1 І cond2 І cond3 АБО cond4 І cond5 І cond6)

становіцца:

<�Код> калі (cond1 * cond2 * cond3 + cond4 * cond5 * cond6)

See: https://en.wikipedia.org/wiki/Order_of_operations

10
дададзена
Гэта сапраўды добры спосаб думаць аб лагічных аперацыях, і ён працуе ў якасці бонуса мнеманічную памятаць парадак опс. Brilliant. Дзякуй!
дададзена аўтар Joey Day, крыніца

Добры спосаб запомніць гэта думаць пра гэта матэматычна.

  • AND as * (multiply)
  • OR as + (addition)
  • TRUE as 1
  • FALSE as 0

Так думаць пра гэта як просты матэматыцы вы атрымаеце гэта:

  • 0 * 0 = 0
  • <�Літый> 1 * 0 = 0 </літый>
  • 1 * 1 = 1
  • <�Літый> 0 + 0 = 0 </літый> <�Літый> 1 + 0 = 1 </літый> <�Літый> 1 + 1 = 1 </літый>

Адзінае, што можа быць ледзь-ледзь бянтэжыць тое 1 + 1 = 1 , але крыху не можа пайсці вышэй 1 .

Так з гэтым на ўвазе, вы можаце ўжыць гэтую логіку:

<�Код> калі (cond1 І cond2 І cond3 АБО cond4 І cond5 І cond6)

становіцца:

<�Код> калі (cond1 * cond2 * cond3 + cond4 * cond5 * cond6)

See: https://en.wikipedia.org/wiki/Order_of_operations

10
дададзена
Гэта сапраўды добры спосаб думаць аб лагічных аперацыях, і ён працуе ў якасці бонуса мнеманічную памятаць парадак опс. Brilliant. Дзякуй!
дададзена аўтар Joey Day, крыніца

У большасці langueges і вылічаецца першым, такім чынам

if((cond1 AND cond2 AND cond3) OR (cond4 AND cond5 AND cond 6))

гэта правільны выбар.

For C#, See http://msdn.microsoft.com/en-us/library/aa691323%28v=vs.71%29.aspx

For C, See http://en.cppreference.com/w/cpp/language/operator_precedence

For Java , See http://bmanolov.free.fr/javaoperators.php

10
дададзена
<�Я> у <�б> большасць Мовы : у якой няма?
дададзена аўтар inetphantom, крыніца

У большасці langueges і вылічаецца першым, такім чынам

if((cond1 AND cond2 AND cond3) OR (cond4 AND cond5 AND cond 6))

гэта правільны выбар.

For C#, See http://msdn.microsoft.com/en-us/library/aa691323%28v=vs.71%29.aspx

For C, See http://en.cppreference.com/w/cpp/language/operator_precedence

For Java , See http://bmanolov.free.fr/javaoperators.php

10
дададзена
<�Я> у <�б> большасць Мовы : у якой няма?
дададзена аўтар inetphantom, крыніца

У звычайным наборы лагічных звязак (з лагічнай пункту гледжання), і вышэй-прыярытэт, чым або , таму А ці У і З з'яўляецца сапраўды а ці (В і С) . Вікіпедыю пералічвае іх у заказ. Большасць моў праграмавання павінны прытрымлівацца гэтай дамовы, калі яны не з'яўляюцца на самай справе дзіўна.

Тым не менш, для канкрэтнага мовы ці асяроддзя павінна быць магчымасць згатаваць вельмі невялікі тэст, каб задаволіць сябе, што гэта адзін са спосабаў або іншы :)

1
дададзена

У звычайным наборы лагічных звязак (з лагічнай пункту гледжання), і вышэй-прыярытэт, чым або , таму А ці У і З з'яўляецца сапраўды а ці (В і С) . Вікіпедыю пералічвае іх у заказ. Большасць моў праграмавання павінны прытрымлівацца гэтай дамовы, калі яны не з'яўляюцца на самай справе дзіўна.

Тым не менш, для канкрэтнага мовы ці асяроддзя павінна быць магчымасць згатаваць вельмі невялікі тэст, каб задаволіць сябе, што гэта адзін са спосабаў або іншы :)

1
дададзена

Гэта цалкам залежыць ад мовы ці асяроддзя вы просіце аб, якія, на жаль, вы не паказалі.

AND may have higher precedence over OR, or it may be the other way around, or it may be equal.

Гэта можа быць вылічаюцца злева направа, справа налева або з сярэдзіны вонкі ў зменных кірунках, калі ваш мова распрацаваны садыста :-)

Гэта вельмі характэрна для і , каб мець больш высокі прыярытэт, чым АБО і для іх абодвух, каб быць злева направа асацыятыўна.

У такім выпадку

cond1 AND cond2 AND cond3 OR cond4 AND cond5 AND cond 6

было б эквівалентна:

((cond1 AND cond2) AND cond3) OR ((cond4 AND cond5) AND cond 6)
0
дададзена

Гэта цалкам залежыць ад мовы ці асяроддзя вы просіце аб, якія, на жаль, вы не паказалі.

AND may have higher precedence over OR, or it may be the other way around, or it may be equal.

Гэта можа быць вылічаюцца злева направа, справа налева або з сярэдзіны вонкі ў зменных кірунках, калі ваш мова распрацаваны садыста :-)

Гэта вельмі характэрна для і , каб мець больш высокі прыярытэт, чым АБО і для іх абодвух, каб быць злева направа асацыятыўна.

У такім выпадку

cond1 AND cond2 AND cond3 OR cond4 AND cond5 AND cond 6

было б эквівалентна:

((cond1 AND cond2) AND cond3) OR ((cond4 AND cond5) AND cond 6)
0
дададзена

Большасць моў ацэнкі і першы.

0
дададзена

Большасць моў ацэнкі і першы.

0
дададзена