Mi a hiba a hátul tesztelős ciklusomban?
Tudom, hogy nem a legjobban kivitelezett metódus, de a végén a metódusban amikor bekerül a belső ciklus után a bekért változó a listába akkor miért lesz az igen meg a nem változó is -1 még ha i vagy n-t irok is be? (próbáltam az i, vagy n-t contains fügvénnyel is megnézni de akkor is minden esetben false lesz az igen meg a nem változó is és igy ugye nem ér véget sose a külső ciklus)
private static void kerdes1() {
String valasz;
Scanner beolvas = new Scanner (System.in);
int igen;
int nem;
do {
do {
System.out.println("Szeretne filebol beolvasni a teglalap adatait? (csak i vagy n legyen a valasz)");
valasz = beolvas.nextLine();
}
while (valasz.length() > 1 || valasz.length() < 1);
ArrayList lista = new ArrayList();
lista.add(valasz);
System.out.println(lista);
igen = lista.indexOf('i');
nem = lista.indexOf('n');
System.out.println(igen);
System.out.println(nem);
}
while (igen < 0 || nem < 0);
}
Szokásos logikai baki. VAGY helyett ÉS kell neked oda. Gondold végig:
Akkor lépsz ki, amikor az "igen" nem negatív VAGY amikor a "nem" nem negatív.
->
A ciklusban maradás feltétele (while) ennek tagadása:
"igen" negatív ÉS "nem" negatív
Jézusom...
Nem lenne egyszerűbb egy stringben (charban?) eltárolni a bemeneted, és megnézni hogy az a string (char) 'i' vagy 'n'?
Remélem ezt így senki nem tanítja...
#1 vagyok
Na igen, tök felesleges a belső ciklus, és a lista is...
Ennyi lenne az egész:
Scanner sc = new Scanner(System.in);
String v;
do {
System.out.println("Szeretne jól válaszolni? [i/n]");
v = sc.nextLine(); // esetleg .trim() még a végére
} while (!"i".equals(v) && !"n".equals(v));
// happyEnd();
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!