NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Obarvení hodnoty, pokud se podmínka splní

V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Ryouji
Člen
Avatar
Ryouji:16.4.2017 22:02

Dobrý den.

Proč mi nejde obarvit hodnota, pokud se podmínka splní?

for (var i = 8; i <= 100; i++) {
        y = i * 0.5;

        if (i >= 92) {
                document.write("<span style='color:red;'>" + i + y + "</span>" + "<br>");
        }

        else {
                document.write(i + y + "<br>");
        }

        i = i + y - 1;
}
 
Odpovědět
16.4.2017 22:02
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:16.4.2017 22:31

Nepřepíše ti smyčka hlavičku s navázáním stylu?

Nahoru Odpovědět
16.4.2017 22:31
Programátor je stroj k převodu kávy na kód.
Avatar
Ryouji
Člen
Avatar
Odpovídá na krepsy3
Ryouji:16.4.2017 22:38

Žádného přepisu jsem si nikde nevšiml, zkus to prosím blíže specifikovat.

 
Nahoru Odpovědět
16.4.2017 22:38
Avatar
Robert Poč
Člen
Avatar
Odpovídá na Ryouji
Robert Poč:18.4.2017 14:07

Proměnná i není nikdy větší nebo rovna 92, asi ti v té podmínce chybí x+y >= 92 , což je hodnota, kterou na závěr vypisuješ a asi chceš i obarvovat.

 
Nahoru Odpovědět
18.4.2017 14:07
Avatar
Ryouji
Člen
Avatar
Odpovídá na Robert Poč
Ryouji:18.4.2017 22:54

Jakto?

Začnu číslem 8.
Proměnná y dostane hodnotu 4.
Podmínka se nesplní, tudíž se vypíše číslo 12.
Proměnná i se změní na hodnotu 11 a z i++ se přičte 1.

Je tu číslo 12.
Proměnná y dostane hodnotu 6.
Podmínka se opět nesplní, tudíž se vypíše číslo 18.
Nová proměnná i má hodnotu 17 a přičte se 1.

A furt dál, ne?

 
Nahoru Odpovědět
18.4.2017 22:54
Avatar
David Hynek
Tvůrce
Avatar
Odpovídá na Ryouji
David Hynek:19.4.2017 6:59

Tak ti nevím, zda tě mám připravit o tu krásu, když člověk najde řešení sám ("Aha" efekt). Ale na druhou stranu, proč ne :)

Škoda, že jsi v té řadě nepokračoval sám, protože by ti došlo, že u čísla cca i = 68, by ti spodní výpočet z i udělal cca i = 101 a tudíž by ti už neprošlo cyklem a nedostalo ani k podmínce, zda i >= 92.

Nahoru Odpovědět
19.4.2017 6:59
Čím víc vím, tím víc věcí nevím.
Avatar
Robert Poč
Člen
Avatar
Odpovídá na Ryouji
Robert Poč:19.4.2017 7:56

A pořád dál, ale skuteřně dál, zkoušel si to až do konce, těch cca 7 cyklů by tě fakt nezabilo .... prostě, jak jsem již psal, podmínka se nesplní, a jak to, je spíš otázka do hodiny matematiky pro 5. třídu. Co to má počítat a vybarvovat netuším, ale již teoretický základ je prostě od pohledu blbě.

Každý internetový prohlížeč má debbuger (F12), kdyby ses jej namáhal použít, snadno na to přijdeš.

Zkus si změnit podmínku a uvidíš jak hezky se to obarvuje.


V tom vypisování při splněné podmínce máš chybu.

Zápis
document.write("<span style='color:red;'>" + i + y + "</span>" + "<br>");
se typuje jako string tzn. že pro x=8 a y=4 bude výsledek "8" + "4" tedy 84, nikoli 12, nemixuj datové typy, správný zápis je
document.write("<span style='color:red;'>");
document.write(i + y);
document.write("</span>" + "<br>");
nebo si předpočítej výsdledek v=x+y a následně vypiš
document.write("<span style='color:red;'>" + v + "</span>" + "<br>");

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
19.4.2017 7:56
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 7 zpráv z 7.