Feladat: Feladat: Adott egy 10 elemű, egész számokat tartalmazó tömb. Töltsük fel véletlen számokkal, majd kérjünk be egy egész számot a billentyűzetről. Döntsük el hogy a bekért szám szerepel e a 10 elemű tömbben.
Megoldás:
int[] tm = new int[10];
int i;
Random rnd = new Random();
for (i=0 ; i<10; i++)
{
tm[i] = rnd.Next(100,200);
Console.Write("{0} ",tm[i]);
}
Console.WriteLine();
int szam = Int32.Parse(Console.ReadLine());
i = 0;
while (i < 10 && szam != tm[i]) i++;
if (i < 10) Console.WriteLine("A szám szerepel a tömbben");
else Console.WriteLine("A szám nem szerepel a tömbben");
Console.ReadLine();
Magyarázat:
A tömb feltöltése után kérjünk be egy számot a billentyűzetről. Ügyelve a konverzió szükségességére. Ehhez itt a Int32.Parse függvényt használtuk.
Az eldöntéshez egy while, előltesztelő ciklust használunk összetett logikai feltétellel. Az első feltétel azt ellenőrzi, hogy benne vagyunk e még a tömbben, a második, hogy még nem találtuk meg a keresett értéket. Mivel logikai ÉS kapcsolat van a két feltétel között, így a ciklusmag akkor hajtódik végre, ha mindkét feltétel igaz. A ciklusmagban az i ciklusváltozó értékét növeljük. Ha bármelyik feltétel hamissá válik, akkor kilépünk a ciklusból. Így utána az if feltételel döntjük el a kilépés okát, azaz hogy megtaláltuk a szám első előfordulását, vagy elfogyott a tömb. Ennek megfelelően írjuk ki üzenetünket. Figyeljünk oda, hogy az if feltételben nem alkalmazhatjuk a while feltétel második részét, mert ha nincs ilyen tömbelem, akkor a vizsgálatkor már i = 11 lenne, így nem létező tömbelemre hivatkoznánk.