CSCI 3328 Object Oriented CSCI 3328 Object Oriented Programming in C# Programming in C#
Chapter 4: C# Control Statement – Chapter 4: C# Control Statement – Part IPart I
1
Xiang Lian
The University of Texas Rio Grande Valley
Edinburg, TX 78539
Objectives
• In this chapter, you will:– Learn the primitive data types in Visual C#
– Become familiar with arithmetic operators
– Explore how to design algorithms to solve problems
– Learn the components of basic control structures
– Study the syntax of basic sequence, selection, and repetition structures in Visual C#
2
Introduction
• Computer program– Sequence of statements whose objective is to
accomplish a task
• Programming – Process of planning and creating a program
3
Introduction (cont'd)
• Function– Collection of statements; when executed,
accomplishes something
• Syntax– Rules that specify which statements (instructions)
are legal
• Programming language– A set of rules, symbols, and special words– Visual C#
4
Introduction (cont'd)
• Reserved words, keywords, or word symbols–Words that are reserved by Visual C#
– Usually in blue color in the IDE (Visual Studio)
5
About Some Data Types in C#• Value Types Size (in bits) Range
sbyte 8 128 to 127 byte 8 0 to 255 short 16 -32768 to 32767 ushort 16 0 to 65535 int 32 147483648 to 2147483647 uint 32 0 to 4294967295 long 64 -9223372036854775808 to 9223372036854775807 ulong 64 0 to 18446744073709551615 char 16 0 to 65535bool 8 true, falseenum types and struct types
• Reference types include class types, interface types, delegate types, and array types
• Pointer types
6
Declaration of Variables
• All variables must be declared before they are used in a program
• Declaring a variable– int product = 3;
• Declaring multiple variables of the same type– int number1, number2;
7
Naming Convention• Consist of letters, digits, and the underscore
character (_)
• Must begin with a letter or underscore
• C# is case sensitive – NUMBER is not the same as number
8
Arithmetic Operators in Visual C#
• Addition: +
• Subtraction: -
• Multiplication: *
• Division: /
• Modulus: %
• Increment: ++
• Decrement: --
9
Explicitly and Implicitly Converting Between Simple Types• Integer and integer division yields integer result
• Suppose average is a floating point number:– Average = total/num; Average will only get an integer if total and num
are integers.
int sum = 200, num = 3;
float avg;
avg = sum / num;
Console.WriteLine(avg);
// Output: 66
10
Unary Cast Operator
int sum = 200, num = 3;float av;av = (float) sum / num;Console.WriteLine(av);// Output: 66.6666• float/float or float/int or int/float will yield a
float.• C# implicitly promotes the one int to float
11
Division and Modulus
• x / y and x%y• int x=7, y = 2;
• Console.WriteLine(x / y);
• Console.WriteLine(x % y);
– E.g., 7.0 / 2 evaluates to 3.5
12
Last Chapter: Arithmetic Operators
• Unary: +, -
• Multiplicative: *, /, %
• Additive: +, -
• Relational operators– > < >= <=
• Equality operators– ==, !=
• Precedence of operators• http://msdn.microsoft.com/en-us/library/6a71f45d.aspx
13
high
low
Exercises
• What are the values of the following expressions?– 10/3
– 5.2/2.0
– 9 % 3
• What is the order of the following expression?– X = 2 * 5 / 3+ 3 * 5 + 7
14
Control Statements
• Linear (sequential) program execution
• Selection structure
• repetition structure
• Structured programming– Controlled entry and exit out of a module
– Avoid goto statements
15
Selection Structures in C#
• if – single selection statement
• if … else – double selection statement
• switch – multiple selection statement
16
display "passed"
[grade>=60]
[grade<60]
Examples
if (grade >= 60)Console.WriteLine("Passed!");
if (grade >= 60) Console.WriteLine("Passed!");
elseConsole.WriteLine("Failed!");
Conditional OperatorConsole.WriteLine(grade >= 60 ? "Passed!":
“Failed!”);17
Nested If Statement
if (grade >=90)
Console.WriteLine(“A”);
else if (grade >=80)
Console.WriteLine(“B!”);
…
else
Console.WriteLine(“F!”);
18
Repetition Structure - while
Read LCV (initialize)
while (condition)
{ Block
Read LCV again (change value)
}
19
Example
length = Convert.ToInt16(Console.ReadLine());
while (length > 0)
{
Console.Write("Enter Height of the Wall: ");
height = Convert.ToInt16(Console.ReadLine());
PaintAWall thisWall = new PaintAWall(length, height, pricePerGal);
thisWall.CalculateCost(ref paintCost, ref laborCost, ref galPaint, ref sqFt);
Console.Write("Enter Length and Height for Wall #: " + Convert.ToString(numWalls+1));
Console.Write("\nEnter Length of the Wall (0 to quit): ");
length = Convert.ToInt16(Console.ReadLine());}
20
Counter Controlled vs Sentinel Controlled
• Counter controlled while loop (use LCV as a counter)– int Counter =1;
– while (Counter <=10)
– {
…
Counter ++;
– }//does it 10 times
21
increment operator
Counter Controlled vs Sentinel Controlled (cont'd)
• Sentinel controlled while loop – string str;– while (str != "0")– { …
str = Console.ReadLine();– }//does it until str is "0"
• Sentinel controlled is good when one does not know exact number of times to execute a loop
22
Nested Control Statementsclass MultiplicationTable
{
static void Main(string[] args)
{
int i=2, j;
while (i <= 12)
{
j = 1;
while (j <= 10)
{
Console.WriteLine(i + " x " + j + " = " + i * j );
j++;
}
Console.WriteLine("\n");
i++;
}
}
}
24
Top Related