NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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
Odpovídá na Rico ThreeDmax
Michal Šmahel:14.8.2017 0:08

Nech si vypsat vstup před a po parsování. Co se týče porovnání řetězců, není to těžké. Podívej se na funkci equals().

// Instance Skeneru
Scanner sc = new Scanner(System.in, "Windows-1250");

// Vstup
String vstup = sc.nextLine();

/* <nedoporucuji> */
// Porovnání řetězců
if (vstup.equals("1")) {
        System.out.println("Vybrána volba č. 1");
}
/* </nedoporucuji> */

/* <lepsi> */
// Parsujeme na ciselny datovy typ - napr. pouzity int
int vstupCislo = Integer.parseInt(vstup);

// Porovnani cisel
if (vstupCislo == 1) {
        System.out.println("Vybrána volba č. 1");
}
/* </lepsi> */

Stále ovšem platí to, co jsem psal v předchozím komentáři: Pokud pracuješ s čísly, pracuj s nimi ve vhodném číselném datovém typu, string není pro běžná čísla vhodný.

Odpovědět
14.8.2017 0:08
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Rico ThreeDmax:14.8.2017 19:32

Bezva diky moc

 
Odpovědět
14.8.2017 19:32
Avatar
Radka Jánská:25.8.2017 22:36

Ahoj všichni, řeším dilema s klávesnicí. Používáte při programování českou nebo anglickou klávesnici? Vzhledem k tomu, že Java vychází z angličtiny mi přijde logické používat anglickou, ale co potom, když do stringu píšete český text nebo ho potřebujete dát do českých (dvojitých) úvozovek? Přehazujete klávesnici? Na druhou stranu, pokud používáte českou klávesnici, jak píšete znaky, které nemá (anglické uvozovky, větší než / menší než, složené závorky, hranaté závorky apod.)? Předem děkuji za podněty.

 
Odpovědět
25.8.2017 22:36
Avatar
Odpovídá na Radka Jánská
Petr Štechmüller:25.8.2017 22:49

Ahoj, jde o zvyk. Já všechno píšu na české klávesnici. Ty speciální znaky lze psát pomoci pravého altu (alt gr).
"<" = "alt gr + ?"
">" = "alt gr + ."
"{" = "alt gr + b"
"}" = "alt gr + n"
"[" = "alt gr + f"
"[" = "alt gr + g"

Zbytek zkratek najdeš na netu...

Odpovědět
25.8.2017 22:49
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovědět
25.8.2017 22:59
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Zdeněk Lenk
Člen
Avatar
Zdeněk Lenk:4.2.2018 9:51

Zdravím,

když do níže uvedeného programu zadám v NetBeans v konzoli 0 nebo záporné číslo, tak mi jako odpověd nevyběhne tato hláška: Odmocnina ze záporného čísla neexistuje! Čím to může být? Program jsem jen zkopíroval z těchto stránek a neupravil.

package podminka3;

import java.util.Scanner;

public class Podminka3
{
public static void main(String[] args) {

Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.prin­tln("Zadej nějaké číslo, ze kterého spočítám odmocninu:");
int a = Integer.parse­Int(sc.nextLi­ne());
if (a > 0)
{
System.out.prin­tln("Zadal jsi číslo větší než 0, to znamená, že ho mohu odmocnit!");
double o = Math.sqrt(a);
System.out.prin­tln("Odmocnina z čísla " + a + " je " + o);
}
if (a <= 0)
{
System.out.prin­tln("Odmocnina ze záporného čísla neexistuje!");
}
System.out.prin­tln("Děkuji za zadání");
}
}

 
Odpovědět
4.2.2018 9:51
Avatar
Luke Streit
Člen
Avatar
Odpovídá na Zdeněk Lenk
Luke Streit:20.2.2018 11:02

Ten kód co jsi zde zmínil jsem hodil do IDEA a normálně to fungovalo, ale ještě mě napadla jedna věc.

Zkus místo - if(a<=0) dát jenom else - protože ty tím prvním ifem říkáš, že to co je větší než 0, tak ti to odmocninu vypočítá a z toho ti automaticky vyplývá, že když ta podmínka nebude splněna, tak ti to tu odmocninu nevypočte...Ale fungovat by měl i ten kód co jsi zde zmínil...

 
Odpovědět
20.2.2018 11:02
Avatar
Filip Gola
Člen
Avatar
Filip Gola:15.3.2018 11:23

Dobrý deň chcem sa opýať aký je rozdiel medzi príkazom názovScaneru.nex­tLine() a nazovScanneru­.next()

package com.filip;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);
boolean conti = true;
while (conti) {
System.out.prin­tln("Write 3 numbers");
int num1 = scan.nextInt();
int num2 = scan.nextInt();
int num3 = scan.nextInt();
if ((num1 > num2) && (num1 > num3)) {
System.out.prin­tln("The greatest is: " + num1);
} else if ((num2 > num1) && (num2 > num3)) {
System.out.prin­tln("The greatest is: " + num2);

} else {
System.out.prin­tln("The greatest is: " + num3);
}
System.out.prin­tln("Do you want to continue in program? [yes / no]");
String pokracuj = scan.nextLine();
// ked to dam scan.next(); tak to robi to co ma ale chcem vediet preco :)

conti = (pokracuj.equ­alsIgnoreCase("y­es")? true : false);
}

}
}

Editováno 15.3.2018 11:25
 
Odpovědět
15.3.2018 11:23
Avatar
Rasinsky
Člen
Avatar
Rasinsky:26.7.2018 14:04

Scanner.next() precita vstup iba po prvu medzeru, neprecita viac retazcov oddelenych medzerou. A tiez ponecha kurzor na povodnom riadku po precitani, zvysne retazce oddelene medzerou "ostanu" stale nacitane.

Scanner.nextLine() precita cely riadok az do konca, a nastavi kurzor na novy riadok

To s tym nastavovanim kurzoru:
ak pouzijes napr

Scanner sc=new Scanner(System.in);
        System.out.println("zadaj prvy text: ");

        String str1=sc.next();

        System.out.println("Prvy text "+str1);

        System.out.println("zadaj druhy text: ");

        String str2=sc.next();

        System.out.println("druhy text:  "+str2);

        sc.close();

ak v takomto pripade zadas text: aaa bbb, tak ta ani nepusti zadat druhy text, kedze ostane kurzor na tom istom riadku a nacita dalsi retazec po dalsiu medzeru. Vystup by bol v tomto pripade

zadaj prvy text:
aaa bbb
Prvy text aaa
zadaj druhy text:
druhy text: bbb

V tvojom pripade

// ked to dam scan.next(); tak to robi to co ma ale chcem vediet preco :)

to robi to iste lebo ocakavas len jeden retzec / jedno slovo/ ktory kontrolujes [yes / no]

 
Odpovědět
26.7.2018 14:04
Avatar
Karel Klíč
Člen
Avatar
Karel Klíč:15.9.2018 10:37

V tutoriálu větvení v druhém programu vám chybí deklarace nebo definice Scanner sc = new Scanner(System­.in,"Windows-1250"); a pak je metoda volána. Tudíž vyhodí chybu, protože Scanner nemá definovanou proměnou do které data načíst. S pozdravem Karel

 
Odpovědět
15.9.2018 10:37
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.