Java nyelv DoWhile?
az lenne a feladat, hogy bekérek egy számot konzolról, és ha 1 és 31között van akkor kiírja, hogy jó a szám, különben új számot kér be
Hogycsináljam?
Nyiss egy jegyzettömböt és ments el "Feladat.java" néven. Aztán írd meg a programot.
Ha nem itt, akkor hol akadtál el?
hát netBeansbe kell
és ott, hogy hogy kell megírni
mert ügye bekérek egy számot
Scanner elso = new Scanner(System.in);
int a = elso.nextInt();
csinálja azt, hogyha a kisebb 31 és nagyobb 1 akkor igaz különben nem
do {
if (a>1 & a<31) {
System.out.println("Jóa szám");
}
else {
System.out.println("nem jó a szám");
}
addig amíg a nem lesz kisebb 31 és nagyobb 1
while (a>1 & a<31);
de ha jó számot írok be akkor végtelen ciklus, ha nem jó számot akkor kiírja, hogynem jó és leáll
valaki segítene?
A szám bekérését is a do{}while-on belül csináld meg.
Most csak egyszer kéri be a számot és folyamatosan azt vizsgálja, ezért a végtelen ciklus.
Ha csak annyi a feladat, hogy bekérsz 1 SZÁMOT, és eldönti, akkor nem is kell ciklus, hanem elég egy if (a>1 && a<31)
(Figyelj oda az AND művelet & helyett && -vel kell használnod!)
ha dowhile-n belül csinálomakkor meg a while nál nem találja az a-t
ígynéz ki most a teljes programom :
Az volt a gond, hogy te pont fordítva gondolkodtál, mint ahogy jó, ugyanis a ciklusodnak addig kell mennie, amíg NEM (-1,31) közötti számot olvasol be. Ha már egyszer olyat beolvasott, megnyugszik hogy jó a szám, és kilép a ciklusból.
A javított kód:
Scanner elso = new Scanner(System.in);
int a=-1;
do {
System.out.println("Kerek egy szamot: ");
a = elso.nextInt();
if (a>1 && a<31) {
System.out.println("Jó a szám");
}
else {
System.out.println("nem jó a szám");
}
} while (!(a>1 && a<31));
Igen.
Szó szerint fordítva:
"csináld { pittyputty; } amíg (világavilág);"
Ez ugye végtelen ciklus, mert mindig világ a világ :D Ha ezt letagadom, akkor pedig sosem fog lefutni a "pittyputty".
Egy kicsit szebb példa:
int a=5;
do {
a--;
}while (a!=0);
System.out.println("vége");
Ez addig csinálja csökkenti a-t, amíg nem lesz nulla. Vagyis ötször fog lefutni, mert a 4. lefutás után a==1, ekkor még bemegy ötödszörre is a ciklusba, csökkent, és a==0 lesz. Ekkor már nem megy be többször a ciklusba, és kiírja, hogy vége.
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!