Nejste přihlášen/a.

Přihlásit se do poradny

 

Javascript - použít cyklus for nebo podmínku

Od: asdf odpovědí: 4 změna:

Dobrý den,

napadla mě úvaha,

v javascriptu můžeme napsat ahoj 3x po sobě, a to několika různými způsoby.

např: document.write("ahojahojahoj"); nebo

<script>

document.write("ahoj");

document.write("ahoj");

document.write("ahoj");

</script>

nebo, abychom nemuseli zbytečně 3x opisovat metodu .write("ahoj"), můžeme použít cyklus for

=>

for (i=0; i<3; i++) {document.write("ahoj")} tento cyklus nám říká, že pro i<3 se zvýší proměnná o jednu jednotku a zároveň se bude vypisovat ahoj, dokuď je proměnná menší jak 3. (i <3)

napadlo mě tedy čistě ze zvědavosti, zdali by šlo slovo ahoj nechat vypsat 3x po sobě i jinými způsoby. např. přes podmínku . =>

var i=0;

if (i<3) {document.write("ahoj") && i++ } \\ udělal jsem v podstatě velmi podobnou cestu jako při cyklu for.

V případě podmínky jsem udělal toto : Pakliže je i < 3, dokument vypíše ahoj, a zároveň zvýší hodnotu proměnné o jednotku. Podmínka bude platit do té doby, dokud bude i<3. Jenže když jsem si to zkoušel spustit vs jsFiddle, tak se to naneštěstí nerozběhlo. Osobně vydím, že je problém v tom, že podmínka if () nedokáže asi udělat více implikací najednou. např. { document.write("ahoj") && i++}. Nebo se mýlím a udělal jsem někde chybu? když jsem si hledal nějaké výkové reference na internetu, vždy jsem našel v závorkách { } , pouze jednu implikaci, nikoli konjunkci implikací.

Děkuji za Váš čas, který nad tím strávíte. Jsem pouhý gymnazista, a ve škole informatiku ani nemáme, tudíž se nemám koho zeptat, takže si Vašeho času velmi vážím. Zároveň bych chtěl dodat, že vidím jak je ohromně přínosné znát aspoň základy výrokové logiky z matiky, které ulehčí pochopit programování.

 

 

4 odpovědi na otázku
Řazeno dle hodnocení

 

 


0x
If sa vykona len raz, potom kod pokracuje dalej, nema dovod vykonat sa viac raz. Na to je cyklus, bud for alebo while. Na studium odporucam skor Javu alebo c#, javascript s jeho absenciou kontroly typov a pravej dedicnosti vas moze naucit zlym navykom.

 


0x
FYI Jestli vám schází nápady co byste si mohl naprogramovat na zactek, mrkněte sem na code kata, doporučuji bank OCR nebo bowling.
codingdojo.org/...
Jinak výběr jazyka je na vás. Na JS nevidím nic špatného. Stejně tak na zmíněném C#, Java... Python, clojure, c...

 

anon65534

0x

{} znamená seskupený blok kódu, používá se u speciálních "řídících výrazů" jako třeba if, while, for, do, function, atd... pokud je přidělen k nějakému takovému řídícímu výrazu tak se budou vyhodnocovat všechny výrazy mezi { } podle toho jak uzná za vhodné daný řídící výraz (smyčky opakují, podmínky spouští jen když chcou atd.). Dá se také používat samostatně a poté pouze odděluje viditelnost proměnných a jinak se chová stejně.

Vše co je mezi { } se tedy vykonává za sebou, středník ; byl v javascriptu snad vždycky dobrovolný a je potřeba povinně jen když chceš dát dva výrazy a více na stejný řádek.

K těm &&. Takhle && nefunguje. && vezme logické (true nebo false) hodnoty z obou dvou svých stran a pokud jsou obě pravdivé tak vrátí true. To je přesně to co chce if vykoná první {} jen pokud je jeho podmínka true. Teď už ti možná došlo k čemu se tedy dá && v takovém případě použít. Můžeme zkontrolovat více věcí naráz pomocí jako třeba if (i < 3 && i >0) což zjistí zda je i mezi 0 až 3. Podobně funguje || kterému ale stačí aby jen jedna podmínka byla true.

Teď ještě opravy tvých tvrzení:
>udělal jsem v podstatě velmi podobnou cestu jako při cyklu for.
>Podmínka bude platit do té doby, dokud bude i<3

To ano ale musíš myslet že podmínka se vyhodnotí jenom jednou pokud tam nebudeš mít další vnější smyčku (třeba while) nebo to nebude v nějaké funkci kterou zavoláš znovu ale v tom případě by to musela být globální proměnná. Ještě je tu taky možnost to napsat rekurzivně, tím bych se ale zatím nezabýval dokud nebudeš mít zmáknuté aspoň podmínky.

>Nebo se mýlím a udělal jsem někde chybu? když jsem si hledal nějaké výkové reference na internetu, vždy jsem našel v závorkách { }
Doufám že už je jasné podle předchozího vysvětlení jak funguje if a k čemu tam jsou ty závorky, nicméně ještě lze zapsat if zkráceně bez závorek a to v případě že má vykonat jen jeden výraz:

if (podmínka neboli výraz který se musí vyhodnotit na true)
...nejakaFunkce();

poznámka: Doporučuji radši používat termíny které se zde (v programování) používají častěji, místo konjukce používat and atd... bude ti pak rozumět mnohem více lidí, taky jsem snad nikdy neviděl že by se někdo ptal těmito výrazy na stack overflow a podobně. Bude se ti lépe hledat pomoc. Ale to je jen moje zkušenost.

 

runner2

0x
var pole = ["ahoj","ahoj","ahoj"];
pole.forEach(x => doc.write(x));

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]