NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 8 - Podmínky (větvení) 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
Daniel Tesař:14.3.2017 19:26

Ahoj, mam problem z else jestli někdo nevíte, vždycky když použiju metodu else tak automaticky mi to vyplivne chybu v tom řádku a nevim si rady jak to opravit, prikladam fotku :), za pomoc budu velmi vděčný.

System je OSX.
Dan

Editováno 14.3.2017 19:27
 
Odpovědět
14.3.2017 19:26
Avatar
pocitac770
Tvůrce
Avatar
Odpovídá na Daniel Tesař
pocitac770:14.3.2017 19:44

Za if se nepíše středník, není to konec logiky (logika klauzule if je ve složených závorkách), takhle to bere jako obyčejný kus kódu.

Editováno 14.3.2017 19:44
 
Odpovědět
14.3.2017 19:44
Avatar
Odpovídá na pocitac770
Daniel Tesař:14.3.2017 23:48

Super :) tak proto, ještě jednou děkuju, sam sem si nad tim lamal hlavu a vubec mi to nedošlo

 
Odpovědět
14.3.2017 23:48
Avatar
Neaktivní uživatel:12.4.2017 21:20

Naozaj skvelé články David. Baví ma to

Odpovědět
12.4.2017 21:20
Neaktivní uživatelský účet
Avatar
Maroš Škumát:17.4.2017 23:00

Môže mi niekto vysvetliť aký význam tam má to Windows-1250 ? :)

Scanner sc = new Scanner("Windows-1250");
 
Odpovědět
17.4.2017 23:00
Avatar
Adam Ježek
Tvůrce
Avatar
Odpovídá na Maroš Škumát
Adam Ježek:18.4.2017 3:33

To bude asi kódování, aby speciální znaky (žščř...) vypadaly jak mají.

Odpovědět
18.4.2017 3:33
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Kuba
Člen
Avatar
Kuba:1.5.2017 20:29

Ahoj, vytvořil jsem si amaterskou kalkulačku na kvadratické rovnice a přijde mi, že obsahuje poměrně hodně "ifů/elsů", zůstává "program" stále efektivní, nebo se již na dělení využívá jiná metoda? Dále pokud vytvořím cyklus x++, jak zadám, aby se cyklus zvýšil pouze o 0.5 a ne 1.0? Díky za Váš čas :)

package kvadrrovn;
import java.util.Scanner;

public class KvadrRovn {

    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in, "UTF-8");

       String repete = "ano";
       while (repete.contains("ano")) {

       System.out.println("Zadejte postupně hodnoty základního tvaru kvadratické rovnice:");
       System.out.println("ax2 + bx + c = 0");
       System.out.println("Zadej hodnotu a: [??x2 + bx + c = 0]");
       double a = Double.parseDouble(sc.nextLine().trim());
       System.out.println("Zadej hodnotu b: [" + a + "x2 + ??x + c = 0]");
       double b = Double.parseDouble(sc.nextLine().trim());
       System.out.println("Zadej hodnotu c: [" + a + "x2 + " + b + "x + ?? = 0]");
       double c = Double.parseDouble(sc.nextLine().trim());
       System.out.println("Zadání je: [" + a + "x2 + " + b + "x + " + c + " = 0]" );

       double D = (Math.pow(b, 2)) - (4 * a * c);
       if (a != 0){
           System.out.println("Diskriminant = " + D);
       if (D == 0) {
           System.out.println("Diskriminant je roven nule.\nRovnice má jedno 'dvoujnásobné' řešení: x1 = -b / 2*a");
           double x1D0 = -b / (2*a);
           System.out.println("Výsledek: x1 = " + x1D0);
       }
       else if (D < 0){
           System.out.println("Diskriminant je záporný.\nVýsledek: Rovnice nemá řešení v oboru reálných čísel.");
       }
       else {
           System.out.println("Diskriminant je kladný.\nVýsledek: Rovnice má 2 různá řešení:");
           double x1 = (-b + Math.sqrt(D)) / (2 * a);
           double x2 = (-b - Math.sqrt(D)) / (2 * a);
           System.out.println("x1 = " + x1 + "\nx2 = " + x2);
       }
       if (D >= 0){
       System.out.println("Nyní si dosadíme nějaké hodnoty pro nakreslení grafu:\nTabulka: [x;y]");

       for (int x = -5; x <= 5; x ++) {
          double y = a * Math.pow(x, 2) + b * x + c;
       System.out.println("[" + x +  ";" + y + "]");
       }

       }
         }
       else {
              System.out.println("a = 0, nejedná se o kvatratickou rovnici, ale lineární!");
               }

       System.out.println("Pokud chcete zadat další rovnici napište 'ano', pro ukončení jen zmáčkněte enter");
       repete = sc.nextLine().toLowerCase().trim();
       }
    }

}
 
Odpovědět
1.5.2017 20:29
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Kuba
gcx11:2.5.2017 0:19
for (double x = -5; x <= 5; x += 0.5d)

Ale počítej s tím, že to nemusí být přesné kvůli tomu, že se to ukládá do double. Lepší by bylo IMHO toto:

for (int y = -10; y <= 10; y += 10)
{
    double x = y/2.0d;
}
Editováno 2.5.2017 0:19
 
Odpovědět
2.5.2017 0:19
Avatar
Kuba
Člen
Avatar
Odpovídá na gcx11
Kuba:2.5.2017 17:04

Děkuji, musím si nastudovat proč se používá znak += a ne jen +. Nicméně druhá varianta nefunguje úplně tak jak má, chci do y (dle tvého kódu) dosadit hodnoty po jedné polovině, pak mi ale i x vyhází poloviční hodnoty. Ještě na to musím mrknout, každopádně znaménko += vyřešilo můj problém. Na přesnosti výpočtu zamakám později. Díky!

 
Odpovědět
2.5.2017 17:04
Avatar
pocitac770
Tvůrce
Avatar
Odpovídá na Kuba
pocitac770:2.5.2017 18:57
//přičte 1 k proměnné i
i++;
i = i + 1;
//přičte b k proměnné a
a += b;
a = a + b;
 
Odpovědět
2.5.2017 18:57
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 149.