Diskuze: vnorena podmienka

JavaScript JavaScript vnorena podmienka

Avatar
Matej
Člen
Avatar
Matej:

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
Redaktor
Avatar
Jenkings:

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ý
Redaktor
Avatar
Odpovídá na Matej
Jan Vargovský:

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
Redaktor
Avatar
Odpovídá na Jan Vargovský
Jenkings:

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  +1 15.3.2014 16:04
Největší časovou náročnost má výpočet časové náročnosti..
Avatar
Matej
Člen
Avatar
Matej:

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
Redaktor
Avatar
Odpovídá na Matej
mkub:

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
Redaktor
Avatar
Odpovídá na Matej
Honza Bittner:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Honza Bittner
Jan Vargovský:

I want to delete this

Editováno 16.3.2014 18:47
 
Nahoru Odpovědět 16.3.2014 18:46
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Honza Bittner
Zdeněk Pavlátka:

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

Nahoru Odpovědět  -1 16.3.2014 19:24
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Honza Bittner
Redaktor
Avatar
Nahoru Odpovědět 16.3.2014 20:29
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
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.