Problem s cyklom – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problem s cyklom – Java – Fórum – Programujte.comProblem s cyklom – Java – Fórum – Programujte.com

 

jonhnw
~ Anonymní uživatel
20 příspěvků
17. 10. 2012   #1
-
0
-

Cybne cislo, zadajte ho znova:Cybne cislo, zadajte ho znova:Ahojte učím sa v jave, a keď som si napísal tento kod:

 class NekonecnyCyklus {
	public static int ctiInt() {
		int cislo = 0;
		byte[] pole= null;
		boolean nacteno = false;
		do{
			try{
				System.in.read(pole);
				String vstup = new String(pole).trim();
				cislo = Integer.valueOf(vstup).intValue();
				nacteno = true;
			} catch (Exception e) {
				System.out.println("Cybne cislo, zadajte ho znova: ");
			}
		} while (!nacteno);
	 return cislo;
	}



	public static void main (String[] args) {
		int cislo, pocet =0;
		
		System.out.println("Zadavaj cela cisla, cislem 100 program konci: ");
		while ((cislo = NekonecnyCyklus.ctiInt()) !=100) {
			if (cislo%2 == 0)
				pocet++;
		}
		System.out.println("Pocet sudych cisel je: " + pocet);
	}

}

 tak keď dam run tak vystup je len Chybne cislo, zadajte znova : a tato veta sa len opakuje (zacykli sa to).

Problem je v triede ctiInt ale neviem ho najst. 

Dikes za pomoc :)

Nahlásit jako SPAM
IP: 92.52.51.–
TheOndrap+2
Super člen
17. 10. 2012   #2
-
0
-

Ahoj,

tvůj "problém" jde řešit dvěma způsoby:

  1. Předělej ten System.in.read() a čti to BufferedReader (viz dole)
  2. Když budeš trvat na svém řešení, musíš si inicializovat to pole bytů třeba
byte[] pole = new byte[MAX_DELKA];

A jenom bych poradil, když si tam dolu dáš takovouhle "obecnou" vyjímku a přepíšeš si ten stackTrace, tak nevíš, co ti tam padá! .. když ladíš appku, napiš si tu chybovou hlášku a za ní pomocí e.printStackTrace() si nech vypsat tu chybu .. a ono by ti to hned napsalo: java.lang.NullPointerException ,, a přesně na tom řádku je tvůj read :)

BufferedReader

BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
String s = bufferRead.readLine(); // čte se takhle

Ahoj, Ondra

Nahlásit jako SPAM
IP: 147.228.209.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
ingiraxo+15
Grafoman
17. 10. 2012   #3
-
0
-

ano.. proč to dělat jednoduše, když to jde složitě... 

    public static int ctiInt() {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            try {
                return scan.nextInt();
            } catch (InputMismatchException ex) {
                scan.nextLine();
            }
        }
        return 0; // neni dulezite
    }
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
TheOndrap+2
Super člen
17. 10. 2012   #4
-
0
-

#3 ingiraxo
Si chtěl nacvičit převádění znaků z pole charů -> int :)

Mě spíš zaráží, že tohle jsem chyba, která se dá odladid za 5 minut, a z toho si 4 minuty dělám kafe :)

Nahlásit jako SPAM
IP: 147.228.209.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
ingiraxo+15
Grafoman
17. 10. 2012   #5
-
0
-

#4 TheOndrap
spíš nevěděl, že to jde i takto (číst jen číslo) - podle kódu soudim =)

a ještě ta proměnná v main - cislo je tam úplně zbytečně navíc

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 60 hostů

Podobná vlákna

Problem s cyklom v ulohe 5 — založil eraser17

Problem — založil Ghosta

Problém — založil pali6

Problém v C — založil Robin

Problem s C++ — založil ower

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý