loop continue isys 350. exiting a loop prematurely in some cases it is necessary to end a loop...

23
Loop Continue ISYS 350

Upload: silvester-gregory

Post on 18-Jan-2018

222 views

Category:

Documents


0 download

DESCRIPTION

Example while (1 > 0) { MessageBox.Show("Looping"); if (MessageBox.Show("Do you want to continue?", "Loop demo", MessageBoxButtons.YesNo) == DialogResult.No) { MessageBox.Show("Leaving loop"); break; }

TRANSCRIPT

Page 1: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Loop Continue

ISYS 350

Page 2: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Exiting a Loop Prematurely

• In some cases it is necessary to end a loop before the test condition would end it

• Use the break statement:break;

Page 3: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Example

while (1 > 0) { MessageBox.Show("Looping"); if (MessageBox.Show("Do you want to continue?", "Loop demo", MessageBoxButtons.YesNo) == DialogResult.No) { MessageBox.Show("Leaving loop"); break; } }

Page 4: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Years to Reach Targeted Future ValueFuture Value=Present Value*(1+Rate)Year

Page 5: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Method 1

double PresentValue, Rate, Target, YearToTarget, futureValue; PresentValue = double.Parse(textBox1.Text); Rate = double.Parse(textBox2.Text); Target = double.Parse(textBox3.Text); futureValue = PresentValue; YearToTarget = 0; while (futureValue < Target) { YearToTarget = YearToTarget + 1; futureValue = PresentValue * Math.Pow(1 + Rate, YearToTarget); } textBox4.Text = YearToTarget.ToString();

Page 6: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Method 2

double PresentValue, Rate, Target, YearToTarget, futureValue;PresentValue = double.Parse(textBox1.Text); Rate = double.Parse(textBox2.Text); Target = double.Parse(textBox3.Text); futureValue = PresentValue; YearToTarget = 0; while (true) { if (futureValue >= Target) break; YearToTarget = YearToTarget + 1; futureValue = PresentValue * Math.Pow(1 + Rate, YearToTarget); } textBox4.Text = YearToTarget.ToString();

Page 7: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Method 3

double PresentValue, Rate, Target, YearToTarget, futureValue; PresentValue = double.Parse(textBox1.Text); Rate = double.Parse(textBox2.Text); Target = double.Parse(textBox3.Text); for (YearToTarget = 0; YearToTarget<99999; YearToTarget++) { futureValue = PresentValue * Math.Pow(1 + Rate, YearToTarget); if (futureValue >= Target) break; } textBox4.Text = YearToTarget.ToString(); }

Page 8: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

AccumulatorFind the first N when the sum of all numbers between 1 and N is greater than a target valueMethod 1:

Page 9: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

int Target, Sum, Num; Target = int.Parse(textBox1.Text); Sum =0; Num = 0; while (Sum<=Target) { ++Num; Sum += Num; } MessageBox.Show(Num.ToString()); Sum = 0; Num = 0; while (true) { ++Num; Sum += Num; if (Sum > Target) { MessageBox.Show(Num.ToString()); break; } } Sum = 0; for (Num=1;Num<=999999;Num++) { Sum += Num; if (Sum > Target) { MessageBox.Show(Num.ToString()); break; } }

Page 10: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Allow user to enter password three times to view a picture

Page 11: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Button Click Event Codestring goodPassword = "Hello", enteredPswd; int i; for (i = 1; i <= 3; i++) { enteredPswd = Interaction.InputBox("Enter password: "); if (enteredPswd == goodPassword) { pictureBox1.Visible = true; button1.Enabled = false; break; } if (i < 3) MessageBox.Show("Incorrect! Try again."); else { MessageBox.Show("You have tried three times already!"); button1.Enabled = false; } }

Page 12: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Straight Line Depreciation Table

Page 13: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

dataGridView Control• Properties

– ColumnCount: specify the number of columns• dataGridView1.ColumnCount = 4;

– Columns collection• each column is identified by an index• Each column has a HeaderText property:

– Ex. dataGridView1.Columns[0].HeaderText = "Year";

– Rows collection• Clear all rows: dataGridView1.Rows.Clear();• each row is identified by an index• Adding a blank row:

– dataGridView1.Rows.Add();

– Each Row has a Cells collection• Each cell is identified by an index• Has a value property:

– dataGridView1.Rows[year - 1].Cells[0].Value = year;

Page 14: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Future Value TableFV = PV * (1 +Rate) Year

Page 15: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Code Example dataGridView1.ColumnCount = 2; dataGridView1.Columns[0].HeaderText = "Year"; dataGridView1.Columns[1].HeaderText = "Future Value"; double pv, rate, lastYear, fv; pv = double.Parse(textBox1.Text); rate = double.Parse(textBox2.Text); lastYear = double.Parse(textBox3.Text); dataGridView1.Rows.Clear(); for (int year = 1; year <= lastYear; year++) { dataGridView1.Rows.Add(); fv = pv * Math.Pow(1 + rate, year); dataGridView1.Rows[year - 1].Cells[0].Value = year; dataGridView1.Rows[year - 1].Cells[1].Value = fv.ToString("c"); }

Page 16: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Depreciation Table Code ExampledataGridView1.ColumnCount = 4;dataGridView1.Columns[0].HeaderText = "Year";dataGridView1.Columns[1].HeaderText = "Value at Begining of Year";dataGridView1.Columns[2].HeaderText = "Depreciation During Year";dataGridView1.Columns[3].HeaderText = "Total depreciation to End of Year";double value, life, depreciation, totalDepreciation=0;value = double.Parse(textBox1.Text);life = double.Parse(textBox2.Text);depreciation = value / life;dataGridView1.Rows.Clear();for (int year = 1; year <= life; year++) { dataGridView1.Rows.Add(); dataGridView1.Rows[year - 1].Cells[0].Value = year; dataGridView1.Rows[year - 1].Cells[1].Value = value.ToString("c"); dataGridView1.Rows[year-1].Cells[2].Value = depreciation.ToString("c"); totalDepreciation += depreciation; dataGridView1.Rows[year - 1].Cells[3].Value = totalDepreciation.ToString("c"); value -= depreciation;}

Page 17: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Alternating Row Color dataGridView1.ColumnCount = 2; dataGridView1.Columns[0].HeaderText = "Year"; dataGridView1.Columns[1].HeaderText = "Future Value"; double pv, rate, lastYear, fv; pv = double.Parse(textBox1.Text); rate = double.Parse(textBox2.Text); lastYear = double.Parse(textBox3.Text); dataGridView1.Rows.Clear(); for (int year = 1; year <= lastYear; year++) { dataGridView1.Rows.Add(); fv = pv * Math.Pow(1 + rate, year); dataGridView1.Rows[year - 1].Cells[0].Value = year; dataGridView1.Rows[year - 1].Cells[1].Value = fv.ToString("c"); if (year % 2 == 0)

dataGridView1.Rows[year - 1].DefaultCellStyle.BackColor = Color.AliceBlue; else

dataGridView1.Rows[year - 1].DefaultCellStyle.BackColor = Color.Pink; }

Page 18: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Nested Loop

A Loop that is Inside Another Loop is Called a Nested Loop

Page 19: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Nested Loop Example

for (int hour = 0; hour < 24; hour++){ for (int minute = 0; minute < 60; minute++) { MessageBox.Show("Hour: " + hour.ToString() + " Minute: " + minute.ToString()); }}

• A clock is an example of a nested loop– For each hour,

• Minute hand moves 60 times for each hour

Page 20: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Using dataGridView

Page 21: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

double rate, year, presentValue, futureValue; presentValue = double.Parse(textBox1.Text); dataGridView1.ColumnCount = 5; dataGridView1.Columns[0].HeaderText = "Rate/Year"; dataGridView1.Columns[1].HeaderText = "5"; dataGridView1.Columns[2].HeaderText = "10"; dataGridView1.Columns[3].HeaderText = "15"; dataGridView1.Columns[4].HeaderText = "20"; int rowIndex = 0, colIndex;

dataGridView1.Rows.Clear(); for (rate = 0.03; rate <= 0.05; rate += 0.005) { dataGridView1.Rows.Add(); colIndex = 0; dataGridView1.Rows[rowIndex].Cells[colIndex].Value = rate.ToString("p2"); for (year = 5; year <= 20; year += 5) { futureValue = presentValue * Math.Pow(1 + rate, year); colIndex += 1; dataGridView1.Rows[rowIndex].Cells[colIndex].Value = futureValue.ToString("c"); } rowIndex += 1; }

Page 22: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:
Page 23: Loop Continue ISYS 350. Exiting a Loop Prematurely In some cases it is necessary to end a loop before the test condition would end it Use the break statement:

Code Example int rows = 9, cols = 10, Product; dataGridView1.ColumnCount = cols; dataGridView1.Columns[0].HeaderText = ""; dataGridView1.Columns[0].Width = 25; for (int col = 2; col <= cols; col++) { dataGridView1.Columns[col-1].HeaderText = (col-1).ToString(); dataGridView1.Columns[col-1].Width = 25; } for (int rowIndex = 1; rowIndex <= rows; rowIndex++) { dataGridView1.Rows.Add(); dataGridView1.Rows[rowIndex - 1].Cells[0].Value = rowIndex.ToString(); for (int colIndex = 2; colIndex <= cols; colIndex++) { Product= rowIndex * (colIndex-1); dataGridView1.Rows[rowIndex - 1].Cells[colIndex-1].Value = Product.ToString(); } }