Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 7. diel - Podmienky (vetvenie) v Jave

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
Odpovedá 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ý.

Odpovedať
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

 
Odpovedať
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.

 
Odpovedať
+1
25.8.2017 22:36
Avatar
Odpovedá 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...

Odpovedať
+1
25.8.2017 22:49
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovedať
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í");
}
}

 
Odpovedať
4.2.2018 9:51
Avatar
Luke Streit
Člen
Avatar
Odpovedá 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...

 
Odpovedať
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);
}

}
}

Editované 15.3.2018 11:25
 
Odpovedať
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]

 
Odpovedať
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

 
Odpovedať
+1
15.9.2018 10:37
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 149.