IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: vnorena podmienka

Aktivity
Avatar
Matej
Člen
Avatar
Matej:15.3.2014 15:57

zdravím
rad by som sa spytal , v ktorom "zatvorkovani " mam chybu vo vnorenej podmienke

var zadaneCislo = prompt("Zadajte prosím číslo medzi50 a 100:");

if (((isNaN(zadaneCislo)) || ((zadaneCislo < 90)) || (zadaneCislo > 51))) {
    alert("Číslo " + zadaneCislo + " nie je číslo.");
}
 
Odpovědět
15.3.2014 15:57
Avatar
Jenkings
Tvůrce
Avatar
Jenkings:15.3.2014 16:02

Pokud jsem to pochopil tak chceš tohle:

if (isNaN(zadaneCislo) || zadaneCislo > 90 || zadaneCislo < 50) {
alert("Číslo " + zadaneCislo + " nie je číslo.");
}

Nahoru Odpovědět
15.3.2014 16:02
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Matej
Jan Vargovský:15.3.2014 16:02

Zbytečně si stěžuješ život.

Proč to nenapíšeš takhle?

if (isNaN(zadaneCislo) || zadaneCislo < 90 || zadaneCislo > 51) {
    alert("Číslo " + zadaneCislo + " nie je číslo.");
}

Btw tvrdit že číslo X není číslo je poněkud divné hlášení :D

 
Nahoru Odpovědět
15.3.2014 16:02
Avatar
Jenkings
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Jenkings:15.3.2014 16:04

Hlavně si všimni v tom jeho kódu jak je napsaná otázka, a pak jak jsou v podmínce porovnané ty hodnoty :D

Nahoru Odpovědět
15.3.2014 16:04
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Matej
Člen
Avatar
Matej:15.3.2014 16:49

Diky za odpovede :D
Takto je to napisane v literature podla ktorej idem (ked nato tak kukam tak som dal dve zatvorky naviac ale aj tak to bolo zle )

 
Nahoru Odpovědět
15.3.2014 16:49
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Matej
mkub:16.3.2014 1:31

naco mas zdvojene zatvorky?

if ((podmienka)) {...

je zbytocne...
lepsie a prehladnejsie je:

if (podmienka) {

a okrem toho je to aj menej pisania a ako som spominal, lahsie sa hlada chyba...

a radsej si pozri aj tunajsie tutorialy, lebo literatura obcas vedie k prasekodu

 
Nahoru Odpovědět
16.3.2014 1:31
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Matej
Honza Bittner:16.3.2014 18:41

Pokud mohu tak ti doporučuji následující řešení.

Jednak používáš logický součet, tedy OR. Pro Tvé zadání avšak potřebuješ logický součin, tedy AND. Jinak řečeno, při AND musí platit všechny části podmínky, při OR stačí jen jedna.

Tedy:

var zadaneCislo = prompt("Zadajte prosím číslo mezi 50 a 100:");

if
(
  isNaN(zadaneCislo) //je proměnná číslo ?
  &&
  zadaneCislo < 100 //je číslo menší než 100 ?
  &&
  zadaneCislo > 50 //je číslo větší než 50 ?
)
{
    alert("Číslo " + zadaneCislo + " splňuje podmínky.");
}

Styl zápisu ifu jsem zvolil pro možnost komentáře.

Btw. je určitě lepší testovat první (respektivě druhý) jestli je číslo menší než něco, jelikož pravděpodobnost, že bude číslo větší je mnohonásobně větší... :)

Editováno 16.3.2014 18:43
Nahoru Odpovědět
16.3.2014 18:41
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Honza Bittner
Jan Vargovský:16.3.2014 18:46

I want to delete this

Editováno 16.3.2014 18:47
 
Nahoru Odpovědět
16.3.2014 18:46
Avatar
Odpovídá na Honza Bittner
Zdeněk Pavlátka:16.3.2014 19:24

Nemělo by tam být !isNaN(zadane­Cislo)?

Nahoru Odpovědět
16.3.2014 19:24
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Honza Bittner:16.3.2014 20:29

Jo, jasně... :)

Nahoru Odpovědět
16.3.2014 20:29
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.