KDyž bych chtěl typu bool přiřadit hodnotu false pokud má hodnutu false, tak použít:
bool a = false;
a = a || false;
neboa = a | false;
?
KDyž bych chtěl typu bool přiřadit hodnotu false pokud má hodnutu false, tak použít:
bool a = false;
a = a || false;
neboa = a | false;
Pokud sem to dobře pochopil tak chceš proměnný přiřadit stejnou hodnotu jako už má,tak třeba takhle:
bool a = false;
a = a ? a : a;
a = a ? 1 : 0;
a = a ? true : false;
a = a;
a = !a;
Tak to zkus....
Pokud chceš aby se hodnota nezměnila tak u true a false je to jedno....mužeš použít
a = a || false;
i
a = a | false;
Na co je? Proč jako něčemu přiředit tu samou hodnotu co to má, to je blbost nebo se to dá nějak šikovně využít?
Mám vector struktur. Všechny potřebuji zpracovat a mimo jiné potřebuji zjistit, jestli alespoň jedna vrátila true, ale nepotřebuji znát která.
A tak napíšu
a = a || vecot[i].zpracovani();
if(vec[i].zpracovani())
a = true;
To Jura : Jo, jenže když mi ta f-ce zpracování vrátí false tak mi přemaže původní hodnotu (třeba true)
Edit: Možná jsi nepostřeh, že to chci zpracovávat pro celý vector a až po zpracování dle hodnoty a se rozhodnout, co uděl...
No, v tom případě tě asi zklamu, protože takto to nejspíše nebude fungovat. Prostě si někde budeš muset zapamatovat, jestli se fce povedly:
bool bSucc = false;
for(...)
if( vec[i].zpracuj() ) bSucc = true;
if( bSucc ) neco delej
Řekl bych, že tohle je jeden z nejběžnějších a nejpřehlednějších zápisů, rozhodně pokud na tom projektu nepracuješ sám,tak bych se pokusil to psát hlavně čitelně.
Jura
Promiň, že to takhle říkám, ale kecáš blbosti. Jak to napsal yaqwsx je naprosto v pořádku. Navíc je to přehlednější než to tvé.
To bukaj :
To že občas napíšu blbost vím, ale díky za připomenutí. Nicméně reagujeme oba na to stejné?
Já psal odpověď na:
Možná jsi nepostřeh, že to chci zpracovávat pro celý vector a až po zpracování dle hodnoty a se rozhodnout, co uděl...
A tohle:
a = a || vecot[i].zpracovani();
nebo
if(vec[i].zpracovani())
a = true;
případně mé(nepochopení)
a = vector[i].zpracovani();
Vždy přepíše původní hodnotu.
Já jiné řešení předchozího požadavku neznám(kromě nastavování nějakých bitů, aby to teda bylo skutečně v jedné proměnné, přip. union). Co se týče přehlednosti, tak na to reagovat vzhledem k předchozímu nebudu.
Tak znova napíšu, co jsem psal. Nejspíše bude nutné si ten výsledek zapamatovat někde jinde(v pomocné proměnné, v mém případě je to bSucc a nemá nic společného s proměnnou a). Je taky možné, že absolutně nechápu o co ti jde, ale dvě hodnoty do proměnné bool prostě nenacpeš...
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku