Zdravím,
má někdo prosím nějakou hypotézu, proč tento algoritmus funguje s IFem, avšak nikoliv s WHILE?
Za případné nasměrování i čas moc děkuji...
Petr
class Faktorialy {
public static int faktorial;
public static int vysledek = 1;
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Usage> Name Number");
} else {
faktorial = Integer.parseInt(args[0]);
vysledek = faktorial(faktorial);
System.out.println("Faktorial cisla " + faktorial + " je " + vysledek);
}
}
public static int faktorial(int hodnota) {
while (hodnota > 0) {
// if (hodnota > 0) {
vysledek *= hodnota;
faktorial(--hodnota);
}
return vysledek;
}
}
Příspěvky odeslané z IP adresy 217.77.165.–
Zdravím,
má někdo prosím nějakou hyoptézu, proč tento algoritmus funguje s IFem, avšak nikoliv s WHILE?
Za případné nasměrování i čas moc děkuji...
Petr
class Faktorialy {
public static int faktorial;
public static int vysledek = 1;
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Usage> Name Number");
} else {
faktorial = Integer.parseInt(args[0]);
vysledek = faktorial(faktorial);
System.out.println("Faktorial cisla " + faktorial + " je " + vysledek);
}
}
public static int faktorial(int hodnota) {
while (hodnota > 0) {
// if (hodnota > 0) {
vysledek *= hodnota;
faktorial(--hodnota);
}
return vysledek;
}
}
To kaktus : V takovém případě je tu jiný problém (zkoušeno ve FF): v případě použití onKeyDown (nebo onKeyUp) není rozlišena velikost písmen - např. stisk klávesy 'Q' vrací kód 81 (velké Q) ať je aktivní CapsLock nebo není. Takže nevím, jestli je požadováno malé nebo velké Q.
Jen tak pro zajímavost, následující výstupy při různě použitém onKey...:
Stisknu SHIFT, stisknu Q, pustím SHIFT, stisknu Q, zapnu CAPSLOCK, stisknu Q:
onKeyPress: 81-113-81
onKeyDown: 16-81-81-20-81
onKeyUp: 255-81-16-255-81-255-20-255-81
Navíc ani onKeyDown neřeší to, že funkční klávesy (Delete, šipky, všechny klávesy F# atd.) vracejí číselné kódy znaků - šipka vlevo=37=procenta atd.