Hogy tudom ezt megoldani? Kód lent. C#
Teljes kód:
https://pastebin[pont]com/bhx8KAvX
5 számot bekérek, majd 5 random számot generálok. Ez megvan. A random számokban nem lehet ugyanolyan érték, ha van már egy olyan. Ez megvan.
A felhasználó amit számot bead, és ha van már olyan akkor nem adhatja be ugyanazt. Ez is megvan.
Viszont, egyszerűen képtelen vagyok azt belerakni, hogy 1 és 90 között adhasson meg csak számot, ha nem annyi akkor kérje be ugyanazt. Ugyanúgy, mintha már adott be olyat akkir újra kérje be.
Ebbe kell valamit vacillálni:
while (ownNumbers.Contains(temp) == true)
{
Console.Write($"Adja meg a(z) {i + 1}. számot: ");
temp = int.Parse(Console.ReadLine());
}
A while feltétel ugyebár megvizsgálja, hogy az adott temp változó értéke szerepel-e már, ha igaz a feltétel akkor fut tovább, addig amíg nem. Ebbe próbáltam volna még azt, hogyha a temp kisebb mint 91 pl, de így nem tudom működésre bírni, ha külön while-t rakok be a while-ba akkor sem tudom. Sajnos nincs egyenlőre megoldásom.
Valakinek valami javaslat?
ami módosult:
while (ownNumbers.Contains(temp) == true || temp2 > 91 || temp2 < 0)
{
Console.Write($"Adja meg a(z) {i + 1}. számot: ");
temp = int.Parse(Console.ReadLine());
temp2 = temp;
}
felvéve egy segédváltozó, az elején deklarálva és 91 értékkel megadva, mert a 91 már nem lehet, illetve lejjebb a generálásnál nem a temp-et használom, hanem átírtam temp3-ra és kiszedtem lejjebb a temp = 0-át.
Pedig nem egy nagy magic.
while (ownNumbers.Contains(temp) || temp < 1 || temp > 90)
Pár tipp:
1. Oké, hogy a temp változó temporális, de azért lehetne neki kifejezőbb nevet adni.
2. Olyat, hogy '(boolean expression) == true' nem nagyon írunk, nem kell a '== true' rész, ugyanazt jelenti nélküle is.
Igen. Azért van. Mert, ha a temp marad és ugyanazt használom, akkor a generált szám utolsó értéké megegyezik a bekért utolsó értékkel.
Ha pedig a tempet 0 áznám lejjebb, akkor a while feltétel nem jó. Mert az összes bekért elemet nullázza. Ezert van 3 segéd változó
Amit te adtál meg az meg azért se lenne jó, mert ha 1 et vagy 90 et kérnél akkor futna tovább a ciklus...
De mielőtt itt trollkodnál, az olyanokkal "hogy egyre jobb" láthatod, hogy már megoldottam.
". Olyat, hogy '(boolean expression) == true' nem nagyon írunk, nem kell a '== true' rész, ugyanazt jelenti nélküle is."
Nem igazán tudom miről beszélsz itt.
További kérdések:
Minden jog fenntartva © 2025, 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!