Diskuze: vnorena podmienka

JavaScript JavaScript vnorena podmienka

Aktivity (1)
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
Redaktor
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ý
Redaktor
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
Redaktor
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  +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: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
Redaktor
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
Redaktor
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
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
Jan Vargovský
Redaktor
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
Zdeněk Pavlátka
Tým ITnetwork
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  -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
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/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.