csci 3328 object oriented programming in c# chapter 4: c# control statement – part i 1 xiang lian...

25
CSCI 3328 Object CSCI 3328 Object Oriented Programming in Oriented Programming in C# C# Chapter 4: C# Control Chapter 4: C# Control Statement – Part I Statement – Part I 1 Xiang Lian The University of Texas Rio Grande Valley Edinburg, TX 78539 [email protected]

Upload: charity-hawkins

Post on 13-Dec-2015

227 views

Category:

Documents


3 download

TRANSCRIPT

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

[email protected]

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

Example of while Loop

• int product = 3;

• while (product <= 100)

• product = 3*product;

23

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

Exercises

• Write a console program using nested while loop to output the following pattern to screen:

*

**

***

****

*****25