250 likes | 272 Views
CSCI 3328 Object Oriented Programming in C# Chapter 4: C# Control Statement – Part I. Xiang Lian The University of Texas – Pan American Edinburg, TX 78539 lianx@utpa.edu. Objectives. In this chapter, you will: Learn the primitive data types in Visual C#
E N D
CSCI 3328 Object Oriented Programming in C# Chapter 4: C# Control Statement – Part I Xiang Lian The University of Texas – Pan American Edinburg, TX 78539 lianx@utpa.edu
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#
Introduction • Computer program • Sequence of statements whose objective is to accomplish a task • Programming • Process of planning and creating a program
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#
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)
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
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;
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
Arithmetic Operators in Visual C# • Addition: + • Subtraction: - • Multiplication: * • Division: / • Modulus: % • Increment: ++ • Decrement: --
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
Unary Cast Operator int sum = 200, num = 3; floatav; 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
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
Last Chapter: Arithmetic Operators • Unary: +, - • Multiplicative: *, /, % • Additive: +, - • Relational operators • > < >= <= • Equality operators • ==, != • Precedence of operators • http://msdn.microsoft.com/en-us/library/6a71f45d.aspx 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
Control Statements • Linear (sequential) program execution • Selection structure • repetition structure • Structured programming • Controlled entry and exit out of a module • Avoid goto statements
Selection Structures in C# • if – single selection statement • if … else – double selection statement • switch – multiple selection statement [grade>=60] display "passed" [grade<60]
Examples if (grade >= 60) Console.WriteLine("Passed!"); if (grade >= 60) Console.WriteLine("Passed!"); else Console.WriteLine("Failed!"); Conditional Operator Console.WriteLine(grade >= 60 ? "Passed!": “Failed!”);
Nested If Statement if (grade >=90) Console.WriteLine(“A”); else if (grade >=80) Console.WriteLine(“B!”); … else Console.WriteLine(“F!”);
Repetition Structure - while Read LCV (initialize) while (condition) { Block Read LCV again (change value) }
Example length = Convert.ToInt16(Console.ReadLine()); while (length > 0) { Console.Write("Enter Height of the Wall: "); height = Convert.ToInt16(Console.ReadLine()); PaintAWallthisWall = newPaintAWall(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()); }
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 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
Example of while Loop • int product = 3; • while (product <= 100) • product = 3*product;
Nested Control Statements class MultiplicationTable { staticvoid 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++; } } }
Exercises • Write a console program using nested while loop to output the following pattern to screen: * ** *** **** *****