Végtelen ciklusban véletlenszám generátorral a megadott határok között generáljunk számokat, úgy hogy legyen benne pozitív és negatív szám is generálás esetén. Közben gyűjtjük a pozitív és negatív számok összegét. Ha a generált érték 0, lépjünk ki a végtelen ciklusból break utasítással. Ezután határozzuk meg a teljes összeget és jelenítsük meg az eredményeket.
Két fajta végtelen ciklust is készíthetünk. A while ciklusnál a feltétel mezőbe írt true mindig igaz feltételt jelent, így a ciklus nem áll le.
while(true) // végtelen ciklus
{
adat = m.Next(kezdő, vég);
s += " " + adat.ToString();
if (adat == 0)
{
textBox5.Text += s;
break; // kilépés a ciklusból
}
. . .
}
A for ciklusban a két pontosvessző jelenti a végtelen ciklust, mivel nincs vizsgálati feltétel a ciklus leállítására.
for (; ; ) // végtelen ciklus
{
. . .
}
A feladat megoldása:
// Globális változók deklarálása
int poz_összeg, neg_összeg, összeg;
private void Számol_Click(object sender, EventArgs e)
{
int adat, kezdő, vég;
string s = "";
poz_összeg = 0; neg_összeg = 0; összeg = 0;
Random m = new Random();
if(textBox1.Text != "" && textBox2.Text != "")
{
kezdő = Int32.Parse(textBox1.Text);
vég = Int32.Parse(textBox2.Text);
for (; ; ) // végtelen ciklus
{
adat = m.Next(kezdő,vég); // adat generálása
s += " " + adat.ToString();
if (adat == 0)
{
textBox5.Text += s;
break; // kilépés a ciklusból
}
if (adat > 0) poz_összeg += adat;
if (adat < 0) neg_összeg += adat;
}
textBox3.Text = poz_összeg.ToString();
textBox4.Text = neg_összeg.ToString();
//a teljes összeg
összeg = poz_összeg + neg_összeg;
textBox6.Text = összeg.ToString();
Számol.Enabled = false;
}
}
private void Törlés_Click(object sender, EventArgs e)
{
textBox3.Text = ""; textBox4.Text = "";
textBox5.Text = ""; textBox6.Text = "";
Számol.Enabled = true;
}
private void textBox1_TextChanged(object sender,
EventArgs e)
{
textBox3.Text = ""; textBox4.Text = "";
textBox5.Text = ""; textBox6.Text = "";
Számol.Enabled = true;
}
private void textBox2_TextChanged(object sender,
EventArgs e)
{
textBox3.Text = ""; textBox4.Text = "";
textBox5.Text = ""; textBox6.Text = "";
Számol.Enabled = true;
}
A program futási eredménye: