CSCI 3328 Object Oriented Programming in C Chapter
CSCI 3328 Object Oriented Programming in C# Chapter 4: C# Control Statement – Part I Xiang Lian The University of Texas Rio Grande Valley Edinburg, TX 78539 xiang. lian@utrgv. edu 1
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; accomplishes something when executed, • 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 65535 bool 8 true, false enum 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 number 1, number 2; 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. Write. Line(avg); // Output: 66 10
Unary Cast Operator int sum = 200, num = 3; float av; av = (float) sum / num; Console. Write. Line(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. Write. Line(x / y); • Console. Write. Line(x % y); – E. g. , 7. 0 / 2 evaluates to 3. 5 12
Last Chapter: Arithmetic Operators • • Unary: +, Multiplicative: *, /, % Additive: +, Relational operators high – > < >= <= • Equality operators – ==, != • Precedence of operators low • http: //msdn. microsoft. com/en-us/library/6 a 71 f 45 d. aspx 13
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 [grade>=60] display "passed" [grade<60] 16
Examples if (grade >= 60) Console. Write. Line("Passed!"); else Console. Write. Line("Failed!"); Conditional Operator Console. Write. Line(grade >= 60 ? "Passed!": “Failed!”); 17
Nested If Statement if (grade >=90) Console. Write. Line(“A”); else if (grade >=80) Console. Write. Line(“B!”); … else Console. Write. Line(“F!”); 18
Repetition Structure - while Read LCV (initialize) while (condition) { Block Read LCV again (change value) } 19
Example length = Convert. To. Int 16(Console. Read. Line()); while (length > 0) { Console. Write("Enter Height of the Wall: "); height = Convert. To. Int 16(Console. Read. Line()); Paint. AWall this. Wall = new Paint. AWall(length, height, price. Per. Gal); this. Wall. Calculate. Cost(ref paint. Cost, ref labor. Cost, ref gal. Paint, ref sq. Ft); Console. Write("Enter Length and Height for Wall #: " + Convert. To. String(num. Walls+1)); Console. Write("n. Enter Length of the Wall (0 to quit): "); length = Convert. To. Int 16(Console. Read. Line()); } 20
Counter Controlled vs Sentinel Controlled • Counter controlled while loop (use LCV as a counter) – int Counter =1; – while (Counter <=10) –{ increment operator … Counter ++; – }//does it 10 times 21
Counter Controlled vs Sentinel Controlled (cont'd) • Sentinel controlled while loop – string str; – while (str != "0") –{ … str = Console. Read. Line(); – }//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 Statements class Multiplication. Table { static void Main(string[] args) { int i=2, j; while (i <= 12) { j = 1; while (j <= 10) { Console. Write. Line(i + " x " + j + " = " + i * j ); j++; } Console. Write. Line("n"); i++; } } } 24
Exercises • Write a console program using nested while loop to output the following pattern to screen: * ** ***** 25
- Slides: 25