BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Въпрос относно if
korsarq
Публикувано на: 03-01-2018, 14:54
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 234
Регистриран на: 30.11.16



Защо

if( a = 6 ) дава warning, а

if( (a = 6) ) не реве


--------------------
It gladdens me to know that Odin prepares for a feast.
Soon I shall be drinking ale from curved horns.
This hero that comes into Valhalla does not lament his death!
I shall not enter Odin's hall with fear.My death comes without apology!
And I welcome the valkyries to summon me home!
PMEmail Poster
Top
alphasoftwarebg
Публикувано на: 03-01-2018, 15:02
Quote Post



Име: Златин Георгиев
Група: Потребител
Ранг: Редовен член

Мнения: 522
Регистриран на: 23.12.12



На първия ред имаш if с израз без проверка за условие.
На втория ред имаш if, който проверява стойност на променлива.


--------------------
zzz.bg - NoSQL ZZZ Base...
PMEmail PosterUsers Website
Top
PxL
Публикувано на: 03-01-2018, 21:42
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 2235
Регистриран на: 26.04.05



Сигурен ли си, че нямаш предвид:
CODE

if( a == 6 )

?

Ако не, същото каквото колегата каза
все едно да напишеш
CODE

a=6;
if (a) ...



Това мнение е било редактирано от PxL на 03-01-2018, 21:45


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
DarkOne
Публикувано на: 04-01-2018, 11:53
Quote Post


Group Icon
Име: Александър Петков
Група: Администратор
Ранг: Почетен член

Мнения: 3254
Регистриран на: 30.01.04



За да можеш да спреш warning-а, ако наистина искаш това да направиш.


--------------------
The man who learns only what others know
is as ignorant as if he learns nothing.
The treasures of knowledge are the most rare,
and guarded most harshly.
-- Chronicle of the First Age
PMICQ
Top
AK-85
Публикувано на: 04-01-2018, 13:50
Quote Post



Име:
Група: Потребител
Ранг: Старо куче

Мнения: 741
Регистриран на: 06.07.06



Да допълня към написаното от DarkOne и PxL - двата варианта са семантично абсолютно еднакви, но тъй като изпускането на знака за равенство (т.е. "if( a = 6 )" вместо "if( a == 6 ) ") е доста често срещана неволна грешка, компилаторите предупреждават, като видят присвояване в условие. Допълнителните скоби са указание, че знаеш какво правиш.

Отделен въпрос е, че стилово това не ми харесва и обикновено изнасям присвояването отделно.
PM
Top
Дон Реба
Публикувано на: 04-01-2018, 13:54
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 6553
Регистриран на: 11.11.06



QUOTE (AK-85 @ 04-01-2018, 13:50)

Отделен въпрос е, че стилово това не ми харесва и обикновено изнасям присвояването отделно.

понякога се налага, примерно
if(testenabled && (testresult=DoTest())){
.......
}



PM
Top
Bender
Публикувано на: 04-01-2018, 14:07
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 4993
Регистриран на: 19.06.14



1. Саул думаше на сина си Ионатана и на всичките си слуги да убият Давида. Но Сауловият син Ионатан обичаше много Давида.
2. Ионатан обади на Давида и рече: баща ми Саул търси да те убие; затова пази се утре; скрий се и бъди на тайно място;
3. аз пък ще изляза и ще се изправя до баща си на нивата, дето ще бъдеш ти, и ще поговоря на баща си за тебе и, каквото видя, ще ти обадя.
4. Ионатан говори на баща си Саула добро за Давида, като му рече: да не греши царят против своя служител Давида, защото той в нищо не е съгрешил против тебе, и делата му са твърде полезни за тебе;
5. той излага' душата си на опасност, за да порази филистимеца; и Господ извърши голямо спасение за целия Израил; ти видя това и се радва; защо тогава искаш да съгрешиш против невинна кръв и да убиеш Давида без причина?
6. И Саул послуша гласа на Ионатана, и закле се Саул: жив ми Господ, Давид няма да умре.
7. Тогава Ионатан повика Давида; обади му Ионатан всички тия думи, и доведе Ионатан Давида при Саула, и той беше при него, както вчера и завчера.
8. Почна се пак война, и излезе Давид, та се би с филистимци, и им нанесе голямо поражение, и те бягаха от него.
9. И зъл дух от Бога нападна Саула, и той седеше вкъщи с копие в ръка, а Давид свиреше с ръка по струните.
10. И Саул искаше да прикове Давида с копието о стената, но Давид отскочи от Саула, и копието се заби в стената; а Давид избяга и се спаси нея нощ.
11. И прати Саул слуги в къщата на Давида, да го причакат и го убият до сутринта. И рече на Давида жена му Мелхола: ако не спасиш душата си тая нощ, утре ще бъдеш убит.
12. Тогава Мелхола спусна Давида през прозореца, и той отиде, побягна и се избави.
13. А Мелхола взе една статуя, тури я в леглото, а на възглавието тури козя кожа, и покри с дреха.
14. И Саул прати слуги да уловят Давида; но Мелхола рече: болен е.
15. И Саул прати слуги да видят Давида, като каза: донесете ми го на легло, за да го убия.
16. Дойдоха слугите, и ето, в леглото статуя, а на възглавието козя кожа.
17. Тогава Саул рече на Мелхола: защо ме тъй излъга и пусна моя враг да побегне? А Мелхола отговори на Саула: той ми каза: пусни ме, инак ще те убия.
18. Давид побягна и се избави; дойде при Самуила в Рама и му разказа всичко, що прави с него Саул. И тръгна със Самуила, и се спряха в Нават (в Рама).
19. И обадиха на Саула, думайки: ето, Давид е в Нават, в Рама.
20. Тогава Саул прати слуги да уловят Давида, и когато те видяха лик пророци, които пророчествуваха, и Самуила, техен началник, Дух Божий слезе върху Сауловите слуги, и те почнаха да пророчествуват.
21. Обадиха за това на Саула, и той прати други слуги, но и те почнаха да пророчествуват. После Саул прати и трети слуги, но и те почнаха да пророчествуват.
22. (Разгневен) Саул отиде сам в Рама, и дойде до големия извор в Сеф, и попита, думайки: де са Самуил и Давид? И рекоха: ето, в Нават, в Рама.
23. Той отиде там в Нават, в Рама, и върху него слезе Дух Божий, и той вървеше и пророчествуваше, докле пристигна в Нават, в Рама.
24. Съблече и той дрехите си, и пророчествуваше пред Самуила, и целия оня ден и цялата оная нощ лежа необлечен; затова казват: нима и Саул е между пророците.



Това мнение е било редактирано от Bender на 07-01-2018, 20:06
PM
Top
Дон Реба
Публикувано на: 04-01-2018, 14:13
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 6553
Регистриран на: 11.11.06



много вложени къдрави скоби == зло
PM
Top
Bender
Публикувано на: 04-01-2018, 14:20
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 4993
Регистриран на: 19.06.14



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. Затова Той може и винаги да спасява ония, които дохождат чрез Него при Бога, понеже е всякога жив, за да ходатайствува за тях.
26. Защото такъв Първосвещеник ни и трябваше: свет, незлобив, непорочен, отделен от грешниците и станал по-висок от небесата,
27. Който няма нужда всекидневно, както първосвещениците, да принася жертви първом за Своите грехове, та сетне за греховете на народа, защото Той извърши това веднъж завинаги, като се принесе Сам в жертва.
28. Защото законът поставя за първосвещеници човеци, които имат немощи; а клетвеното след закона слово постави Сина, Който е навеки съвършен.



Това мнение е било редактирано от Bender на 07-01-2018, 20:06
PM
Top
Дон Реба
Публикувано на: 04-01-2018, 15:45
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 6553
Регистриран на: 11.11.06



във раздел С++ сме, как изобщо може да очакваш че нещо е добро icon_smile.gif
тая конструкция си е достатъчно четлива а многото редове особено със скоби са наистина проблем за четенето. пишейки на C/С++ подобни трикове при които първата част на условието решава дали да се смята втората не са рядкост, примерно if(p && p->v) се ползва масово и мен лично повече ме дразни ако се прави с два ифа отколкото така.
PM
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0