06-loops-110627100134-phpapp01
06-loops-110627100134-phpapp01
Svetlin Nakov
Telerik Corporation
www.telerik.com
Table of Contents
What is a Loop?
Loops in C#
while loops
do … while loops
for loops
foreach loops
Nested loops
What Is Loop?
A loop is a control statement that allows
repeating execution of a block of statements
May execute a code block fixed number of times
May execute a code block while given condition
holds
May execute a code block for each member of a
collection
Loops that never end are called an infinite
loops
Using while(…) Loop
Repeating a Statement While
Given Condition Holds
How To Use While Loop?
The simplest and most frequently used loop
while (condition)
{
statements;
}
false
condition
true
statement
While Loop – Example
int counter = 0;
while (counter < 10)
{
Console.WriteLine("Number : {0}", counter);
counter++;
}
while(…)
Examples
Sum 1..N – Example
Calculate and print the sum of the first N
natural numbers
Console.Write("n = ");
int n = int.Parse(Console.ReadLine());
int number = 1;
int sum = 1;
Console.Write("The sum 1");
while (number < n)
{
number++;
sum += number ;
Console.Write("+{0}", number);
}
Console.WriteLine(" = {0}", sum);
Calculating Sum 1..N
Live Demo
Prime Number – Example
Checking whether a number is prime or not
do
{
statements;
}
while (condition);
statement
true
condition
false
do { … }
while (…)
Examples
Factorial – Example
Calculating N factorial
do
{
factorial *= n;
n--;
}
while (n > 0);
Consists of
Initialization statement
Boolean test expression
Update statement
Loop body block
The Initialization Expression
decimal factorial = 1;
for (int i = 1; i <= n; i++)
{
factorial *= i;
}
Complex for Loop – Example
Complex for-loops could have several counter
variables:
for (int i=1, sum=1; i<=128; i=i*2, sum+=i)
{
Console.WriteLine("i={0}, sum={1}", i, sum);
}
Result:
i=1, sum=1
i=2, sum=3
i=4, sum=7
i=8, sum=15
...
31
For Loops
Live Demo
N^M – Example
Calculating n to power m (denoted as n^m):
1
1 2
…
1 2 3 ... n
int n = int.Parse(Console.ReadLine());
for(int row = 1; row <= n; row++)
{
for(int column = 1; column <= row; column++)
{
Console.Write("{0} ", column);
}
Console.WriteLine();
}
Triangle
Live Demo
Primes[N, M] – Example
Print all prime numbers in the interval [n, m]:
int n = int.Parse(Console.ReadLine());
int m = int.Parse(Console.ReadLine());
for (int number = n; number <= m; number++)
{
bool prime = true;
int divider = 2;
int maxDivider = Math.Sqrt(num);
while (divider <= maxDivider)
{
if (number % divider == 0)
{
prime = false;
break;
}
divider++;
}
if (prime)
{
Console.Write("{0} ", number);
}
}
Primes in Range [n, m]
Live Demo
C# Jump Statements
Jump statements are:
break, continue, goto
How continue woks?
In while and do-while loops jumps to the
test expression
In for loops jumps to the update expression
To exit an inner loop use break
To exit outer loops use goto with a label
Avoid using goto! (it is considered harmful)
C# Jump Statements – Example
int outerCounter = 0;
for (int outer = 0; outer < 10; outer++)
{
for (int inner = 0; inner < 10; inner++)
{
if (inner % 3 == 0)
continue;
if (outer == 7)
break;
Label if (inner + outer > 9)
goto breakOut;
}
outerCounter++;
}
breakOut:
Loops – More Examples
Nested Loops – Examples
Print all four digit numbers in format ABCD
such that A+B = C+D (known as happy numbers)
while
do-while
for loops
foreach loops
Nested loops can be used to implement more
complex logic
The operators continue, break & goto can
control the loop execution
Loops
Questions?
http://academy.telerik.com
Exercises
1. Write a program that prints all the numbers from 1
to N.
2. Write a program that prints all the numbers from 1
to N, that are not divisible by 3 and 7 at the same
time.
3. Write a program that reads from the console a
sequence of N integer numbers and returns the
minimal and maximal of them.
4. Write a program that calculates N!/K! for given N
and K (1<N<K).
5. Write a program that calculates N!*K! / (K-N)! for
given N and K (1<N<K).
Exercises (2)
1. Write a program that, for a given two integer
numbers N and X, calculates the sum
S = 1 + 1!/X + 2!/X2 + … + N!/XN
2. Write a program that reads a number N and
calculates the sum of the first N members of the
sequence of Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
55, 89, 144, 233, 377, …
Each member of the Fibonacci sequence (except the
first two) is a sum of the previous two members.
4. Write a program that calculates the greatest
common divisor (GCD) of given two numbers. Use
the Euclidean algorithm (find it in Internet).
Exercises (3)
1. In the combinatorial mathematics, the Catalan
numbers are calculated by the following formula:
1 2 3 1 2 3 4
2 3 4 2 3 4 5
3 4 5 3 4 5 6
4 5 6 7
60
Exercises (5)
1. * Write a program that calculates for given N how
many trailing zeros present at the end of the
number N!. Examples:
N = 10 N! = 3628800 2
N = 20 N! = 2432902008176640000 4
Does your program work for N = 50 000?
Hint: The trailing zeros in N! are equal to the
number of its prime divisors of value 5. Think why!
61
Exercises (6)
1. * Write a program that reads a positive integer
number N (N < 20) from console and outputs in the
console the numbers 1 ... N numbers arranged as a
spiral.
Example for N = 4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
62