CSCI 3328 Object Oriented Programming in C# Chapter 4: C# Control Statement – Part I UTPA – Fall 2012 This set of slides is revised from lecture slides of Prof. John Abraham. -- Xiang Lian
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 Programming Sequence of statements whose objective is to accomplish a task Programming Process of planning and creating a program
Introduction (cont'd) Function Syntax Programming language 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 av; av = sum / num; Console.WriteLine(av); // Output: 66
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
Division and Modulus x / y and x%y E.g., 7.0 / 2 evaluates to 3.5 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) else Conditional Operator 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()); 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): "); }
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 { 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++;
Exercises Write a console program using nested while loop to output the following pattern to screen: * ** *** **** *****