NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze – Lekce 6 - Primitivní datové typy v Javě

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Vojta Liška
Člen
Avatar
Odpovídá na Vojta Liška
Vojta Liška:8.1.2018 19:38

Tak už jsem na to přišel, zapomněl jsem tam dát to Scanner sc = new Scanner(System.in, "Windows-1250");

 
Odpovědět
8.1.2018 19:38
Avatar
Bite Rook
Člen
Avatar
Bite Rook:25.1.2018 15:57

Zdravím. Jsem úplný začátečník. Chtěl bych se zeptat ohledně 14tého řádku (vím, že tam má být správně printf, s kterým to i funguje), ale potřeboval bych to odřádkovat, a tak se chci zeptat, co s tím musím udělat, aby mi šlo použít println

 
Odpovědět
25.1.2018 15:57
Avatar
Martin Petrovaj
Tvůrce
Avatar
Odpovídá na Bite Rook
Martin Petrovaj:25.1.2018 16:59
int dlzka = vstup.trim().length();
System.out.println( String.format("vaše meno je dlhé %1d znakov", dlzka) );

Println bohužiaľ formátovanie stringu v parametri na spôsob printf nepodporuje. Musíš si najprv string zeditovať samostatne, až potom vypísať výsledok.
https://docs.oracle.com/…tStream.html

Editováno 25.1.2018 17:01
Odpovědět
25.1.2018 16:59
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
darf
Člen
Avatar
darf:12.2.2018 21:19

Nazdar. Nejprv diky, za vyborny kurz.
DOTAZ: Dam-li na vstup datovy typ "byte" a napisu tam hodnotu mimo interval dany pro "byte" <-128 až 127>, tak jakto ze program nehavaruje, a proc pracuje dale s hodnotou o kterou dany interval "pretece"?
viz. priklad nasobeni:

Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.prin­tln("Zadejte číslo k zdvojnásobení:");
String s = sc.nextLine();
byte a = (byte) Integer.parse­Int(s);
a = (byte) (a*2);
System.out.prin­tln(a);

 
Odpovědět
12.2.2018 21:19
Avatar
MArtin
Člen
Avatar
Odpovídá na darf
MArtin:16.2.2018 15:04

nebude to preto, ze tam by malo spravne byt:

byte a = Byte.parseByte(s);

Len tak typujem, tiez som java zaciatocnik :-D

 
Odpovědět
16.2.2018 15:04
Avatar
darf
Člen
Avatar
Odpovídá na MArtin
darf:16.2.2018 19:51

V dotazu mi nejde o "chybu v mem kodu", nybrz o vysvetleni toho proc pri takoveto definici vstupu mimo interval, java nehlasi chybu a v pohode si pretece na zavadejici hodnotu?

 
Odpovědět
16.2.2018 19:51
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na darf
gcx11:17.2.2018 11:46

Protože to nutíš Javu dělat, díky tomu castování:

byte a = (byte) Integer.parseInt(s);
a = (byte) (a*2);

Bez těch castů se to nezkompiluje

  1. Převádíš integer na byte
  2. Násobíš byte s integerem

https://docs.oracle.com/…l/jls-5.html#…

 
Odpovědět
17.2.2018 11:46
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na darf
gcx11:17.2.2018 12:10

I když třeba i při sčítání dvou velkých intergerů může hodnota přetéct. Kvůli tomu, jak počítače fungují uvnitř, tak kontrolování přetečení přidává nějakou režii navíc a výpočty tak zpomaluje, plus je to složitější na implelementaci, tak to Java zpočátku neměla.

Až po téměř 20 letech byla do Javy přidána funkce na kontrolování přetečení:
https://docs.oracle.com/…ng/Math.html#…-

Použití:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("Zadejte číslo k zdvojnásobení:");
        int number = Integer.parseInt(sc.nextLine());
        try {
            int result = Math.multiplyExact(number, 2);
            System.out.println(result);
        } catch (ArithmeticException e) {
            System.out.println("Výsledek je moc velký!");
        }
    }
}
 
Odpovědět
17.2.2018 12:10
Avatar
darf
Člen
Avatar
Odpovídá na gcx11
darf:17.2.2018 12:14

gcx11 diky moc za osvetleni teto problematiky.

 
Odpovědět
+1
17.2.2018 12:14
Avatar
Veronika Nováková:27.2.2018 14:04

ahojte, moc by ma potesilo keby v clanku, pripadne v komentaroch som nasla priklady kde sa realne pouzivaju priklady ktore sa ucime v lekciach:) aby mi to viac davalo zmysel :)

 
Odpovědět
27.2.2018 14:04
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 10 zpráv z 184.