Veľkonočná akcia je tu a s ňou aj extra kredity ZADARMO na náš interaktívny e-learning. Dobij si teraz kredity a posuň sa vo svojej kariére vpred!
Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 16. diel - Cykly v Jave do tretice - do-while, break a continue

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Atrament
Člen
Avatar
Odpovedá na Robert Vyskup
Atrament:3.8.2021 10:42

\ je speciální znak, používá se ve Stringu ke vkládání tzv escape sekvencí, například sekvence pro odřádkování \n , pro tabulátor \t , pro uvozovky \" ...

Zkus si

System.out.println("Hello \ world");

a zjistíš že ti to neprojde, bude si stěžovat na použití nelegálního escape znaku
zkus ale

System.out.println("Hello\nworld");

a dostaneš

Hello
world

Pokud bys chtěl vytisknout Hello \ world, musíš to zpětné lomítko nejprve tzv. escapovat pomocí druhého lomítka, tak bude Java vědět, že nejde o začátek escape sekvence ale že skutečně chceš použít zpětné lomítko

System.out.println("Hello \\ world");  //vytiskne Hello \ world

A stejně tak musíš ten znak \ escapovat použít v těch regulárních výrazech, když chceš použít \d tak musíš nejprve escapovat to lomíto takže musíš zadat dvě lomítka\\d

 
Odpovedať
+3
3.8.2021 10:42
Avatar
Neaktivní uživatel:23.7.2022 9:25

U mě dobrý. Domluvit se regulerně s počítačem je pořád lehčí, než se pokusit domluvit cizím jazykem s člověkem :D
A teď přiletí pořádná facka od mého PC, ne? Už jsem mu musela mazat specializovaně paměť, protože jsem si ji zaplnila nestopnutou smyčkou v IDE :'D

Odpovedať
23.7.2022 9:25
Neaktivní uživatelský účet
Avatar
Marek Stříbný:7.9.2022 20:11

Jak je příklad pro continue píše se tam že program počítá stím že uživatel zadá kód špatně a program je udělaný tak že sečte jen čiselné hodnoty tak proč když do String cislaRetezec
přídám třeba před 50 písmenko a
String cislaRetezec = "10,a50,ab10c­d,30,9";
tak najednou už stím program nepočítá a místo výsledku 99 napiše 49 ?

 
Odpovedať
7.9.2022 20:11
Avatar
Odpovedá na Marek Stříbný
Marek Stříbný:7.9.2022 20:29

Tak sem to špatně pochopil už vím že to čísla s textem přeskakuje 😶

 
Odpovedať
7.9.2022 20:29
Avatar
Jan Trnka
Člen
Avatar
Jan Trnka:4.12.2022 22:29

Zatím vše pochopitelné.

 
Odpovedať
-3
4.12.2022 22:29
Avatar
Niki Vávrová:16.12.2022 17:22

Zatím je vše pochopitelné.

 
Odpovedať
-3
16.12.2022 17:22
Avatar
Michael Hereit:19.1.2023 14:03

lekce napsané od Petra jsou jasné čitelné a srozumitelné, příklady typu představte si sklenice atd. jsou skvělé pro nás, kteří přicházíme úplně z jiného oboru :) díky za skvělou lekci!

Odpovedať
19.1.2023 14:03
All we 've to decide is what to do with the time that is given us. (J.R.R. Tolkien)
Avatar
Benjamin Phan:19.7.2023 20:40

Mně teda příkaz continue vůbec srozumitelný nepřijde.
Pro ty, kteří to taky nepochopili přidávám vysvětlení k použitému kódu, ale dost mě mrzí, že to není přímo v článku. Tohle nemůže úplný začátečník z použitého vysvětlení vůbec pochopit. Zkuste se prosím vtělit do nás, kteří to vidíme poprvé a nevysvětlujte to tak, jako byste to vysvětlovali kolegovi, který je už 6 let programátor...

Vysvětlení:
In the given code, the line if (!polozka.mat­ches("\\d+")) continue; is used to skip the current iteration of the loop if the polozka (item) in the polozky array contains any non-numeric characters.

Let's break it down:

polozka.matches("\\d+"): The matches method is used to check if the polozka string matches the specified regular expression. The regular expression \\d+ is used here.

\d: In regular expressions, \d represents any digit character (0-9).

+: The + quantifier means "one or more occurrences of the preceding character" in regular expressions. In this case, it means one or more digit characters.

So, \\d+ matches any sequence of one or more digit characters.

Now, let's understand the if condition:

!polozka.matches("\\d+"): The ! symbol is a logical NOT operator. It negates the result of the matches method.

So, !polozka.matches("\\d+") means "if the polozka does not match the pattern of one or more digit characters."

If the condition evaluates to true, it means that the polozka contains non-numeric characters, and the continue statement is executed, which skips the current iteration of the loop. In other words, it will move to the next item in the polozky array without executing the rest of the loop code.

This allows the code to only consider the elements in the polozky array that are composed entirely of digits, and skip any non-numeric elements, ensuring that only valid integers are added to the soucet (sum) variable.

 
Odpovedať
+7
19.7.2023 20:40
Avatar
Miroslav Švec:14.8.2024 19:06

Jenom mi prosím někdo řekněte proč u příkazu break jsme si nadeklaralovali hledanyIndex jako -1?

 
Odpovedať
14.8.2024 19:06
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Miroslav Švec
DarkCoder:14.8.2024 19:51

Nastavením proměnné hledanyIndex na -1 (nebo jinou speciální hodnotu) program jasně rozlišuje mezi tím, zda byl nějaký prvek nalezen (hledanyIndex >= 0), nebo nebyl (hledanyIndex == -1).

Jinak program je koncipován špatně. Pokud chceme určit zda máme používat kratší nebo delší štítky, tak nepotřebujeme získávat index. Výsledkem by měla být boolovská hodnota na pro dotaz na konkrétní velikost štítku.

A v poslední řadě k poznámce v odstavci break. Break nikterak nesouvisí s příkazem return. Break slouží pro ukončení cyklu nebo větve case v prikazu switch, kdežto return slouží pro ukončení funkce.

Odpovedať
+1
14.8.2024 19:51
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 22.