If vs. else if – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

If vs. else if – C / C++ – Fórum – Programujte.comIf vs. else if – C / C++ – Fórum – Programujte.com

 

cp.Hook0
Newbie
5. 11. 2008   #1
-
0
-

opet prichatu dalsi ze serie mych blbych dotazu, ale radeji se zeptam at si nevytvraim spatne navyky... pokud mam program a vypada nejak takhle...



if (...) {
....
}
else if (....) {
...
}
else if (.....) {
....
}
else {
...
}

mam pouzivat to spojeni else if a nebo staci jen if a zase if? co se spravne pouziva a je mezi tim nejaky rozdil?

Nahlásit jako SPAM
IP: 195.146.108.–
ondra
~ Anonymní uživatel
244 příspěvků
5. 11. 2008   #2
-
0
-

Obecně to stejné není. Takže se používá obojí, podle potřeby. Záleží na tom, co je v těch podmínkách.

Nahlásit jako SPAM
IP: 194.138.12.–
5. 11. 2008   #3
-
0
-

Rekl bych, ze serie if else if else if... bude urcite rychlejsi, nez pouha serie ifu. Jakmile najde jeden blok splnujici podminku tak uz muze zbytek preskocit aniz by to testovalo dalsi podminky.

Nahlásit jako SPAM
IP: 78.102.164.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
ondra
~ Anonymní uživatel
244 příspěvků
5. 11. 2008   #4
-
0
-

Myslím, že např. v následujícím případě bude vyšší rychlost druhé varianty málo platná, když bude fungovat jinak:

void fn(int a, int b)

{
if (a > 5)
{
a();
}
else if (b < 8)
{
b();
}
}
nebo
void fn(int a, int b)

{
if (a > 5)
{
a();
}
if (b < 8)
{
b();
}
}

Nahlásit jako SPAM
IP: 194.138.12.–
WraCkeR0
Newbie
5. 11. 2008   #5
-
0
-

jj tak ako vravi commander..je to trosku setrnejsie..
taktiez na tento sposob mozes spravit

switch(bb)

{
case xx:
...
break;
case xx:
..
}

pravda len ak ocakavas nejake staticke hodnoty.

Nahlásit jako SPAM
IP: 212.5.205.–
bukaj0
Věrný člen
5. 11. 2008   #6
-
0
-

cp.Hook
mam pouzivat to spojeni else if a nebo staci jen if a zase if?
On je hlavně rozdíl v tom, čeho chceš docílit. Pokud se máš několik bloků a pro každý z nich platí nějaké podmínky a chceš, aby se vykonal jenom jeden z nich, je logické použít if ... else if ... else, pokud se může splnit zároveň více podmínek, měly by být oddělené.

Nahlásit jako SPAM
IP: 84.242.87.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
MZetko0
Stálý člen
6. 11. 2008   #7
-
0
-

Řekněme použijeme-li pravidlo vrabce a drátu, máme sérii 4 ifů - tzn se budou testovat určitě všechny 4 podmínky v závorkách. A teď znovu v bleděmodrém - série if a 3 else if - pokud bude splněna jakákoliv z podmínek, ty za ní se již testovat nebudou , pokud tam ještě nějaké vůbec jsou.

Nahlásit jako SPAM
IP: 83.208.235.–
"Přirozená inteligence bude umělou brzy překonána. Přirozenou blbost však umělá nemůže nahradit nikdy"
Jára da CIMRMAN
http://www.newgame.cz
cp.Hook0
Newbie
6. 11. 2008   #8
-
0
-

diky za objasneni..

Nahlásit jako SPAM
IP: 195.146.108.–
lukyle
~ Anonymní uživatel
2 příspěvky
26. 10. 2012   #9
-
-1
-
Mimo téma

mam pre vas prosbu potrebujem program ktory ma zadanie taketo :Vytvoriť program, ktorý naraz preberie meno a priezvisko napísané hocijako, napr. jANkO moKRý a naspäť ho vypíše opäť naraz, ale už gramaticky správne v poradí priezvisko meno, napr. Janko Mokrý. pracujem frame vie to dakto ??  

Nahlásit jako SPAM
IP: 217.31.40.–
lukyle
~ Anonymní uživatel
2 příspěvky
26. 10. 2012   #10
-
0
-

#9 lukyle
ja viem že je to mimo Temu ale neviem si pomoct a potrebujem to 

wxString strPriezvisko, strPrava, strPrve, strMeno, strPrava2, strSpolu;
strMeno=wxGetTextFromUser("Zadaj meno a priezvisko", "Vstup mena a priezviska" ,"");
strPrava=strMeno.Mid(1,100);
strPrava.MakeLower();
strPrve=strMeno.Left(1);
strPrve.MakeUpper();
strMeno=strPrve+strPrava;
strPrava2=strPriezvisko.Mid(1,100);
strPrava2.MakeLower();
strPrve=strPriezvisko.Left(1);
strPrve.MakeUpper();
strPriezvisko=strPrve+strPrava2;
strSpolu=strMeno+" "+strPriezvisko;
wxMessageBox(strSpolu);  

meno aj priezvisko mi vypiše meno 1 pismeno velke ale na priezvisku mi da 1 male

Nahlásit jako SPAM
IP: 217.31.40.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 19 hostů

Podobná vlákna

Ztrata Session v IE pres Iframe — založil rybar73

Iframe auto height — založil VOjta

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý