JavaScript/Kenjiro995/While
Online editor
[editovat]Není nutné cokoliv instalovat protože existují online editory.
- https://replit.com/ - osvědčil se mi při ukládání vytvořených programů, při vytváření nové relace si lze vybrat z mnoha programovacích jazyků
- https://jsfiddle.net/ - ideální pro počáteční experimentování (použít pro tuto hodinu)
- okno HTML - použití scriptu v html
- okno CSC - pro kaskádové styly
- okno JavaScript + No-libray (pure JS) - pro psaní čistě v JavaScriptu
Konstrukce
[editovat]Cyklus se vykonává dokut platí podmínka. Jakmile podmínka přestane platit, cyklus se přeruší.
Konstrukce While s podmínkou na začátku. Proto nejdříve otestuje podmínku a pak provádí příkazy:
while (condition) {
// code block to be executed
}
Konstrukce While s podmínkou na konci. Nejdříve se provedou příkazy a pak textuje podmínku, jestli má opakovat. Proto se blok příkazu uskuteční minimálně jednou:
do {
// code block to be executed
}
while (condition);
Použití
[editovat]text = "";
i = 0;
while (i < 10) {
text += " " + i;
document.write(text, "<br>");
i++;
}
Výstup:
0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0 1 2 3 4 5 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9
I když i = 25 je větší než 10, tak se příkazy provedou minimálně jednou, protože podmínku testuje až na konci:
text = "";
i = 25;
do {
text += " " + i;
document.write(text, "<br>");
i++;
}
while (i < 10)
Výstup:
25
Pro mírně pokročilé
[editovat]Vypiš všechna sudá čísla
[editovat]Teorie
[editovat]Posouzení čísla zda je sudé nebo liché, lze uskutečnit pomocí podmínky if, kde podmínkou je (cislo % 2 == 0). Podmínka využívá "zbytku po dělení" což je symbol "%". Podmínka tak říká, že pokud je číslo vydělené dvěma a přesto jeho zbytek se rovná nule, tak je toto číslo sudé. Neboli dělitelné dvěma bezezbytku. Jinak (else) je číslo liché.
var cislo = 6;
if (cislo % 2 == 0) {
document.write("cislo je sudé");
}
else {
document.write("cislo je liché");
}
Výsledek:
cislo je sudé
var cislo = 5;
if (cislo % 2 == 0) {
document.write("cislo je sudé");
}
else {
document.write("cislo je liché");
}
Výsledek:
cislo je liché
Script s využitím While
[editovat]var max = prompt("Zadejte maximální číslo ");
var cislo = 0;
while (cislo <= max) {
if (cislo % 2 == 0) {
document.write("cislo " + cislo +" je sudé", "<br>");
}
else {
document.write("cislo " + cislo +" je liché", "<br>");
}
cislo = cislo + 1;
}
Vstup:
6
Výstup:
cislo 0 je sudé cislo 1 je liché cislo 2 je sudé cislo 3 je liché cislo 4 je sudé cislo 5 je liché cislo 6 je sudé
Vypiš každý x-tý znak
[editovat]text = "Školství je součást vzdělávacího systému zajišťující výchovu a vzdělávání dětí a mládeže.";
for (var x = 1; x < 8; x++) {
var i = 0;
document.write("x : " + x + " ");
while (i < text.length) {
document.write(text[i]);
i+=x;
}
document.write("<br>");
}
Výstup:
x : 1 Školství je součást vzdělávacího systému zajišťující výchovu a vzdělávání dětí a mládeže. x : 2 Šosv esuátvdlvch ytm aiťjc ýhv zěááídt ldž. x : 3 Šlvjsčtzlahstuašjíýo věvíě mde x : 4 Šs sávlc t ij h záít d. x : 5 Štečváhs šcc dáě e x : 6 Švstlhtajý ěí d x : 7 Šíuzcsaíhváíd
Pro pokročilé
[editovat]Vytvoří tabulku násobilky
[editovat]document.write('<table border="1">');
j = 1;
while (j <= 10)
{
document.write("<tr>");
i = 1;
while (i <= 10) {
document.write("<td>" + i * j + "</td>");
i++
}
document.write("</tr>");
j++
}
document.write("</table>");
Výstup:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 |
3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | 30 |
4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 |
5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 |
6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 |
7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 | 70 |
8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 |
9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 | 90 |
10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
Výpis prvních 100 prvočísel
[editovat]var pocet=100;
var i, jePrvocislo;
var n=1;
var max=0;
var p=new Array(pocet);
p[0]=2; // první uložené prvočíslo bude 2
while (max<pocet-1) {
n+=2;
jePrvocislo=true; // předpokládáme, že n bude prvočíslo
i=0;
while ((i<=max) && jePrvocislo)
if (n%p[i]==0) // je n dělitelné p[i] beze zbytku?
jePrvocislo=false; // ano je, nemůže být tedy prvočíslo
else
i++; // není, zvýšíme i a zkoušíme dál
if (jePrvocislo) { // je testované číslo n prvočíslo?
max++; // ano je, zvýšíme index zarážky max
p[max]=n; // a uložíme sem číslo n
}
}
for (i=0; i<max; i++) // všechna čísla uložená v poli
document.write(p[i]+", "); // vytiskneme
document.write(p[max]); // za posledním číslem už nebude čárka
Výstup:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541