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 10 - Cyklus for 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 Atrament
Petr Vopalecký:6.2.2017 10:55

Děkuji za jasné vysvětlení. :)
Tohle mi ale v javě příjde jako docela chytáček...

 
Odpovědět
6.2.2017 10:55
Avatar
Atrament
Člen
Avatar
Odpovídá na Petr Vopalecký
Atrament:6.2.2017 11:24

Je to taková malá záludnost :) Načítat vstup od uživatele mi přijde lepší dělat jenom pomocí nextLine() a případná čísla z toho pak parsovat podle potřeby

float vaha = Float.parseFloat(sc.nextLine());
 
Odpovědět
6.2.2017 11:24
Avatar
Vincent Jakl
Člen
Avatar
Vincent Jakl:18.3.2017 11:41
Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.println("Vítejte v kalkulačce");
System.out.println("Zadejte prvni cislo");
float a = Float.parseFloat(sc.nextLine());
System.out.println("Zadejte druhou hodnotu");
float b = Float.parseFloat(sc.nextLine());
System.out.println("Vyberte si operaci");
System.out.println("1.Sčítání");
System.out.println("2.Násobení");
System.out.println("3.Odčítání");
System.out.println("4.Dělení");
int vyber= Integer.parseInt(sc.nextLine());
float vysledek = 0;
switch (vyber)
{
    case:1
            vysledek = a +b;
    break;
    case:2
            vysledek = a*b;
    break;
    case:3
            vysledek = a-b;
    break;
    case:4
            vysledek = a/b;
    break;
}

Mohl bych se zaptat proč mi nefunguje case?

Editováno 18.3.2017 11:42
 
Odpovědět
18.3.2017 11:41
Avatar
Vincent Jakl
Člen
Avatar
Odpovídá na Vincent Jakl
Vincent Jakl:18.3.2017 11:44

Tak jsem jenom blbej a neumim koukat :D

 
Odpovědět
18.3.2017 11:44
Avatar
Libor Sitek
Člen
Avatar
Libor Sitek:14.5.2017 14:25

Ahoj, mám za sebou základy Javy z tutoriálu. Docela často se zde používá načítání vstupu od uživatele pomocí metody .nextLine() a případné číslo z toho pak parsovat, např.

int a = Integer.parseInt(sc.nextLine());

Problém ale nastane, když se na vstupu zadá něco jiného než číslo, program poté spadne. Dá se nějak jednoduše ověřit, zda uživatel zadal číslo a popřípadě vypsat hlášku typu "Chybné zadání, opakujte znovu"?
Jediný způsob, na jaký jsem s mými omezenými znalostmi přišel, je obalit parsování do Try-Catch bloku:

int cislo;
boolean chyba;
do {
        System.out.println("Zadejte číslo: ");
        try {
                cislo = Integer.parseInt(sc.nextLine());
                chyba = false;
        }
        catch(Exception e) {
                System.out.println("Chybné zadání, opakujte znovu!");
                chyba = true;
        }
} while(chyba);
Odpovědět
14.5.2017 14:25
Když se chce, hledá se jak, když se nechce, hledá se proč
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Libor Sitek
gcx11:17.5.2017 13:46

Máš to téměř dobře, akorát bys neměl chytat přímo Exception. Můžeš v tom mít nějakou jinou chybu a pak by ses o ní nedozvěděl. Lepší je použít specializovanou výjimku NumberFormatEx­ception.
Anebo bez výjimek:

while (!sc.hasNextInt()){
     System.out.println("Please enter a valid number!");
     sc.next();
}
int result = sc.nextInt();
System.out.println("Number: " + result);
 
Odpovědět
17.5.2017 13:46
Avatar
David Švec
Člen
Avatar
David Švec:14.6.2017 20:12

Myslím, že je jednoduší použít funkci power na umocnění :D

Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("Napiš číslo, které chceš umocnit: ");
        float a = Float.parseFloat(sc.nextLine());
        System.out.println("Napiš exponent: ");
        float b = Float.parseFloat(sc.nextLine());
        System.out.println(Math.pow(a,b));
 
Odpovědět
14.6.2017 20:12
Avatar
Michal Athanasios Devecka:23.6.2017 19:41

programik ktory nacita cislo, overi ci sa nachadza toto cislo v prvkoch prvych 50 prvkov Fibonacciho postupnosti a ak ano, vypise vsetky predchadzajuce prvky

import java.util.Scanner;

// author Mishco

public class Matika {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.print ("Zadaj ľubovoľné číslo: ");
int cislo = Integer.parseInt (sc.nextLine () );

int[] fn = new int [50];
fn [0] = 0; fn [1] = 1;

switch (cislo) {
case 0: System.out.println ("Vami zadané číslo je prvým prvkom Fibonacciho postupnosti");
case 1: fn [2] = 1; System.out.println ("Vami zadané číslo je druhým prvkom Fibonacciho postupnosti. Postupnost je nasledovná: 0 + 1 = 1");

default:
for (int i = 2; i < 50; i++) {
fn [i] = fn [i-1] + fn [i-2];

if (cislo == fn [i]) {
System.out.printf ("Toto sú predchádzajúce čísla postupnosti od %d: ", cislo);
for (int j=0; j<i; j++) {
System.out.printf ( "%d +",fn [j]);

}
}
if (cislo < fn [i] ) {
System.out.prin­tln("Vami zadané číslo sa nenachádza v prvých 48 číslach Fibonacciho postupnosti");
break;
}
}
}

}}

 
Odpovědět
23.6.2017 19:41
Avatar
MiroslavP
Člen
Avatar
MiroslavP:17.11.2017 20:13

Java mne baví :-) , je to díky výbornému tutoriálu ITnetwork. M

 
Odpovědět
17.11.2017 20:13
Avatar
Michal Martinec:5.1.2018 20:28

mam jednu otazku, mozno debilnu tak dopredu pardon :)

co ten cyklus v mocninatore vlastne urobi?
nakolko nechapem ked je tam:
for(int i = 0; i < (n - 1); i++)
vysledok = vysledok * a;

nechapem co to realne urobi, kedze premennu "i" v zatvorkach nepouzivam...... Mozno je to tym ze sa dnes ucim od rana a je 20:30 :D ale neide mi to do hlavy. Prosim o vysvetlenie. Dakujem

Odpovědět
5.1.2018 20:28
Neporovnavaj sa s ostatnymi. Porovnavaj sa sam so sebou.
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 151.