C# ban ez a kód mért nem RANDOM számokkal tölti fel a tömböt?
using System;
namespace TestApp
{
class Program
{
static public int[] tomb = new int[100];
static void feltolt()
{
Random r = new Random();
for (int i = 0; i < tomb.Length; i++)
{
r = new Random();
tomb[i] = r.Next(1, 100);
}
}
static void kiir()
{
Console.WriteLine("A tömb elemei:");
for (int i = 0; i < tomb.Length; i++)
{
Console.WriteLine(i);
}
}
static void Main(string[] args)
{
feltolt();
kiir();
Console.ReadKey();
}
}
}





1) Nem kell mindig új Random példányt csinálni a ciklusmagon belül. Hozd létre egyszer ciklus előtt és használhatod azt. Te ezzel most azt csinálod, hogy felveszel egy pénztárost, akinél fizet egy vásárló, aztán kirúgod és felveszel egy következő alkalmazottat. Nem hatékony, na.
2) A feltöltés oké, de a kiírásnál nem a tömbben lévő értéket írod ki, hanem hogy hányadik elemnél jársz.
Jah tényleg elnéztem a kiiratást.
"Te ezzel most azt csinálod, hogy felveszel egy pénztárost, akinél fizet egy vásárló, aztán kirúgod és felveszel egy következő alkalmazottat. Nem hatékony, na."
De akkor nem lesz random.. Vagy mégis?





Magyarúl ezt a sort tegyem ki mainbe?:
Random r = new Random();





Te most ezt csinálod:
Random r = new Random();
for (...)
.. r = new Random(); //ez ide nem kell





Na jó, beszéljünk egy kicsit a példányosításról. Amikor leírod a new kulcsszót, akkor egy általad megadott osztályból vagy struct-ból létrejön egy objektum. Ez azt jelenti, hogy kapsz valamit, ami képes ellátni azt a feladatot, amire neked éppen szükséged van. Neked jelen esetben kell valami, ami véletlenszámokat tud előállítani - ezt tudja a Random osztály. Mivel neked erre szükséged van, ezért nagyon helyesen leírtad, hogy
Random r = new Random();
Innentől kezdve az "r" változóra hivatkozva elérheted ezt az eszközt és "ráveheted arra", hogy véletlenszámot állítson elő. És erre mindaddig képes is lesz, amíg létezik. Ez lesz a kódodban az
r.Next(1, 100)
ami 1 és 99 közti véletlenszámot generál.
Másképp fogalmazva, ahhoz, hogy betonozni tudj, kell egy betonkeverő. De ha egy részt lebetonoztál, és állnál át a következő rész betonozásához, nem fogsz rohanni a Praktikerbe venni egy új betonkeverőt. (Vagy ha gazdag vagy, megteheted, de nincs értelme.) A meglévő ugyanúgy alkalmas erre a célra.
Kapcsolódó 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!