Milyen folyamatok mennek végbe a kódrészletben? (C#)
Figyelt kérdés
Az a feladat hogy a prímszámok kiíratása 1000-ig.
A kód maga jól működik de nem értem mert még csak most kezdtem a c#-ot de régebben már tanultam c++-t.
Hogy mehet tovább a második for ciklusnál ha j<i ha mind két változó értéke 2 és pontosan miért rakta oda a primszam változót?
for (int i = 2; i < 1000; i++) {
bool primszam = true;
for (int j = 2; j < i && primszam; j++) {
if (i % j == 0) primszam = false;
}
if (primszam) Console.WriteLine(i);}
2019. szept. 13. 19:10
2/8 anonim válasza:
Nem megy tovább, pont ez a lényeg, 2 a legkisebb prímszám, tehát azt nem ellenőrzi. Tehát az i = 2 esetén a belső ciklus el se kezdődik. Aztán másodjára az i = 3 esetén már lefut egyszer.
3/8 A kérdező kommentje:
de amikor j=3 és i=4 akkor hogy lesz a prímszám értéke false ha 4%3 == 1 és az ellentmondást mond a leírtaknak ezért meg marad a prímszám értéke true
2019. szept. 13. 19:42
4/8 anonim válasza:
a külső ciklus i = 4 esetében is a belső ciklus j = 2 -ről indul, ahol 4 % 2 = 0, tehát abban is van már egy false.
5/8 A kérdező kommentje:
Addig már értem , de mitől változik vissza a j értéke 2-re és pontosan mit csinál a belső for ciklusban a && primszam
2019. szept. 13. 21:11
6/8 anonim válasza:
Írasd ki azt a nyomorult i-t és j-t egy Console.WriteLine()-al a második ciklus belsejében, hamár debuggolni túl nagy luxus.
7/8 anonim válasza:
Attól változik vissza, hogy értékül van neki adva itt:
int j = 2
Ez a j változó lényegében minden belső ciklusra új változó... persze a compiler nyilván nagy valószínűséggel ugyanazt a memóriaterületet fogja használni rá mindegyik külső ciklus lefutása esetén.
8/8 A kérdező kommentje:
Rendben , már értem köszönöm a segítséget.
2019. szept. 14. 09:46
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
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!