zpět k lekci

Opakování, dokud na vstupu nebude číslo

důležitost: 5

Vytvořte funkci načtiČíslo, která se bude ptát na číslo tak dlouho, až návštěvník zadá platnou číselnou hodnotu.

Výslednou hodnotu funkce musí vrátit jako číslo.

Návštěvník může tento proces ukončit i zadáním prázdného řádku nebo stisknutím „Storno“. V takovém případě by funkce měla vrátit null.

Spustit demo

Otevřít pískoviště s testy.

function načtiČíslo() {
  let číslo;

  do {
    číslo = prompt("Zadejte číslo, prosím:", 0);
  } while ( !isFinite(číslo) );

  if (číslo === null || číslo === '') return null;

  return +číslo;
}

alert(`Načteno: ${načtiČíslo()}`);

Řešení je trochu složitější, než by mohlo být, protože si musíme poradit s null/prázdnými řádky.

Ve skutečnosti tedy přijímáme vstup tak dlouho, dokud to není „skutečné číslo“. Tuto podmínku splňují i null (storno) a prázdný řádek, protože v číselné podobě jsou obě 0.

Po skončení musíme zacházet s null a s prázdným řádkem speciálně (vrátit null), jelikož jejich konverze na číslo by vrátila 0.

Otevřít řešení s testy na pískovišti.