260 likes | 284 Views
Loops. ISYS 350. Two Types of Loops. while loop for loop. The while Loop. The while loop causes a statement or set of statements to repeat as long as a Boolean expression is true The simple logic is: While a Boolean expression is true, do some task A while loop has two parts:
E N D
Loops ISYS 350
Two Types of Loops • while loop • for loop
The while Loop • The while loop causes a statement or set of statements to repeat as long as a Boolean expression is true • The simple logic is: While a Boolean expression is true, do some task • A while loop has two parts: • A Boolean expression that is tested for a true or false value • A statement or set of statements that is repeated a long as the Boolean expression is true Boolean Expression True Statement(s) False
Structure of a while Loop • In C#, the generic format of a while loop is: while (BooleanExpression) { Statements; } • The first line is called the while clause • Statements inside the curly braces are the body of the loop • When a while loop executes, the Boolean expression is tested. If true, the statements are executed • Each time the loop executes its statement or statements, we say the loop is iterating, or performing an iteration
Example: An Infinite Loop while (1 > 0) { MessageBox.Show("Looping"); }
An Infinite Loop that plays beep sound To play beep, we need System.Media namespace: using System.Media; while (1 > 0) // while (true) { SystemSounds.Beep.Play(); }
Using a Counter to Control the Loop int counter = 0; while (counter<5) { MessageBox.Show(counter.ToString()); ++counter; //counter++; } int counter = 1; while (counter<=5) { MessageBox.Show(counter.ToString()); ++counter; //counter++; }
Using a Flag Boolean continueFlag = true; while (continueFlag) { SystemSounds.Beep.Play(); if (MessageBox.Show("Do you want to continuue? ", "Continue?", MessageBoxButtons.YesNo) == DialogResult.No) continueFlag = false; }
Flag Example bool myFlag = true; int counter2 = 1; while (myFlag) { MessageBox.Show(counter2.ToString()); ++counter2; if (counter2 > 5) myFlag = false; }
Accumulator Find the sum of all numbers between 1 and N. int N, Sum, Counter = 1; N = int.Parse(textBox1.Text); Sum = 0; while (Counter <= N) { Sum += Counter; ++Counter; } MessageBox.Show(Sum.ToString());
Interactive Input using VB’s InputBox Statement 1. Add a reference to Microsoft Visual Baisc: Project/Add Reference/Assemblies\Framework\Microsoft Visual Basic 2. Add this code to the form: using Microsoft.VisualBasic; Example of using InputBox: int myint; myint= int.Parse(Interaction.InputBox("enter a number:")); MessageBox.Show(myint.ToString());
Accumulator Find the sum of all numbers between 1 and N. int N, Sum, Counter = 1; N = int.Parse(Interaction.InputBox("enter an integer:")); Sum = 0; while (Counter <= N) { Sum += Counter; ++Counter; } MessageBox.Show(Sum.ToString());
While Loop ExampleN Factorial, N! int N, NFact, Counter = 1; N = int.Parse(Interaction.InputBox("enter a integer:")); NFact = 1; while (Counter <= N) { NFact *= Counter; ++Counter; } MessageBox.Show(NFact.ToString());
Using Visual Basic’s Pmt Function to Compute Monthly Loan Payment • payment = Financial.Pmt(rate / 12, term * 12, -loan);
Enter Loan and Rate in textboxes, then display monthly pay for terms from 5 to 40 with a step of 5 in a ListBox double loan, rate, term, payment; loan = double.Parse(textBox1.Text); rate = double.Parse(textBox2.Text); term = 5; while (term <= 40) { payment = Financial.Pmt(rate / 12, term * 12, -loan); listBox1.Items.Add("Term = " + term.ToString() + " Payment is: " + payment.ToString("c")); term += 5; }
Enter Loan and Term in textboxes, then display monthly pay for rates from 5% to 10% with a step of 0.5% in a ListBox double loan, rate, term, payment; loan = double.Parse(textBox1.Text); term = double.Parse(textBox2.Text); rate = 0.05; while (rate <= .1) { payment = Financial.Pmt(rate / 12, term * 12, -loan); listBox1.Items.Add("Rate = " + rate.ToString("p") + " Payment is: " + payment.ToString("c")); rate += .005; } Note: A double may not exactly equal to .1 while (rate<=0.1000001) or while (rate < .105)
Payment Calculator:Use the Form Load event to create the rate listbox using a loop double rate = .03; listBox1.Items.Clear(); while (rate< .105) { listBox1.Items.Add((rate*100).ToString("n2") + "%"); //listBox1.Items.Add((rate.ToString(“p")); rate += .005; }
Calculate the rate:rate = .03 + listBox1.SelectedIndex * .005; double loan, rate, term, payment; loan = double.Parse(textBox1.Text); if (radioButton1.Checked) { term = 10; } else if (radioButton2.Checked) { term = 15; } else { term = 30; } rate = .03 + listBox1.SelectedIndex * .005; MessageBox.Show(rate.ToString("p")); payment = Financial.Pmt(rate / 12, term * 12, -loan); textBox2.Text = payment.ToString("C");
The for Loop • The for loop is specially designed for situations requiring a counter variable to control the number of times that a loop iterates • You must specify three actions: • Initialization: a one-time expression that defines the initial value of the counter • Test: A Boolean expression to be tested. If true, the loop iterates. • Update: increase or decrease the value of the counter • A generic form is: for (initializationExpress; testExpression; updateExpression) { } • The for loop is a pretest loop
Sample Code int count; for (count = 1; count <= 5; count++) { MessageBox.Show(“Hello”); } • The initialization expression assign 1 to the count variable • The expression count <=5 is tested. If true, continue to display the message. • The update expression add 1 to the count variable • Start the loop over // declare count variable in initialization expression for (int count = 1; count <= 5; count++) { MessageBox.Show(“Hello”); }
Other Forms of Update Expression • In the update expression, the counter variable is typically incremented by 1. But, this is not a requirement. //increment by 10 for (int count = 0; count <=100; count += 10) { MessageBox.Show(count.ToString());} • You can decrement the counter variable to make it count backward //counting backward for (int count = 10; count >=0; count--) { MessageBox.Show(count.ToString());}
Accumulator Find the sum of all numbers between 1 and N. int N, Sum, Counter; N = int.Parse(Interaction.InputBox("enter an integer:")); Sum = 0; for (Counter = 1; Counter <= N;Counter++ ) { Sum += Counter; } MessageBox.Show(Sum.ToString());
Enter Loan and Rate in textboxes, then display monthly pay for terms from 5 to 40 with a step of 5 in a ListBox double loan, rate, term, payment; loan = double.Parse(textBox1.Text); rate = double.Parse(textBox2.Text); for (term = 5; term <= 40;term+=5 ) { payment = Financial.Pmt(rate / 12, term * 12, -loan); listBox1.Items.Add("Term = " + term.ToString() + " Payment is: " + payment.ToString("c")); }
Increment smaller than 1:Enter Loan and Term in textboxes, then display monthly pay for rates from 3% to 10% with a step of .5% in a ListBox double loan, rate, term, payment; loan = double.Parse(textBox1.Text); term = double.Parse(textBox2.Text); for (rate = .03; rate <= .1;rate+=.005 ) { payment = Financial.Pmt(rate / 12, term * 12, -loan); listBox1.Items.Add("rate = " + rate.ToString("p") + " Payment is: " + payment.ToString("c")); } Note: for (rate = .03; rate <= .100001; rate += .005) Or for (rate = .03; rate < .105; rate += .005)
Find the Sum of All Even Numbers between 1 and N int N, Sum, Counter; N = int.Parse(Interaction.InputBox("enter an integer:")); Sum = 0; for (Counter = 1; Counter<=N;Counter++ ) { if (Counter % 2 ==0) Sum += Counter; } MessageBox.Show(Sum.ToString());
The loop control variable may be declared before the loop or within the for statement Int counter; for (counter = 0; counter <=5; counter++) { MessageBox.Show(counter.ToString());} What is the value of counter after the loop? • Or for (int counter= 0; counter <=5; counter++) { MessageBox.Show(counter.ToString());}