C O M P U T E R P R O G R A M M I N G I I S U M M E R 2 0 1 1
Purpose
This PowerPoint is for students that received
instruction in Computer Programming I using the Visual Basic language.
Computer Programming II uses the C#
Essential Standard
This PowerPoint reviews variables, decision making
statements, arrays, and methods (sub procedures).
Major differences between C# and VB are also covered.
C# is very different from VB in one KEY way. All
statements MUST end with a semicolon (;). If you forget this, your code will not work. Exceptions: IF statements and loops
The upside to this is two-fold:
1. Multiple coding statements may be on the same line
2. A long code segment can be spilt up without having to use an
Spacing C# Examples
int intAge; string strName;
Two different statements- same line
Long line of code:
string query = @"SELECT whatever
FROM tableName
WHERE column = 1";
Semicolon Exceptions
Two exceptions to the semicolon rule:
if(x==b) no semicolon here
It is a “clause” - only part of the statement {
y=7; semicolon as normal
}
while(x< i) no semicolon here either – again it is a “clause”
{
intGradeTotal=intGrade; semicolon as normal
Declaring a Variable
In VB we use the Dim keyword to declare a variable:
Dim intAge as Integer
C# handles this differently:
int intAge;
In C# use the following format:
DataType variableName;
All types are spelled out except integer (int) and
C# Examples
string strName;
char charGrade;
int intAge;
Coding Blocks
In VB we use the End keyword to end coding blocks like
IF statements or loops.
If a = b Then b=c
End If
In C#, we use braces so this code block would be written:
if(a==b)
{
b=c;
Equality Check (==)
You might of noticed something on the last slide- a
== in the if statement.
In VB the assignment operator and equality are the
same (=). This is NOT true in C#. The equals sign is solely used for assignment. To check for equality you must use ==.
Using = in an if statement to check for equality is a
logic error. The code will run properly, but not
Increment Counters
In VB to add one to a counter we use varName += 1, for
two we use +=2 and so on. (i+=1)
This shorthand works in C# as well, but C# provides an
additional way to add or subtract one from a counter. i++;
i--;
++ adds 1 to the value of i while -- subtracts one.
Remember the semicolon is required.
To count by 2, or another number, we use the same
IF Statements
In C# we do not use THEN keyword as in VB. The comparison is enclosed in ( ) after the if keyword.
if (a < b)
{
Statements
}
IF..Then..Else Example
if(a > b) {
b=c; d= 7;
}
else
{
Else If
C# handles multiple else if statements a little
differently as well. There is a space between else and if unlike in VB. As in VB there can be multiple else ifs and a else (default) if all statements are false.
if (a == b)
{c = 12;}
else if (a>b) {c=14;} else if (a < b) { c = 16; } else
If Statements in Assignment
Statements
Like VB, C# supports an if statement in an
assignment statement. However the format is completely different:
string strName = (a < b) ? "less than 10" : "greater than 10";
And/Or & Short Circuiting
In VB we use the And/Or keywords in
compound if statements.
C#
And = & Or = |
To short circuit the statement use && (and)
Examples
else if (number < 15 & number > 5)
Using and
else if(number > 50 | number < 25)
Usingor
else if (number < 15 && number > 5)
Using short circuit and
else if(number > 50 || number < 25)
Select Case
The Select Case statement in VB do not exist in C#. Instead C# has
the switch keyword. This operates similarly to Select Case, but has some key differences. Let’s refresh our memory with an example:
Select case intGrades
Case 90 to 100
strGrade= “A”
Case 80 to 89
strGrade=“B”
Case 70 to 79
strGrade=“C”
Case 60 to 69
strGrade=“D”
Case Is < 60
strGrade=“F”
Else
Messagebox.show(“Please input a valid number!”)
Switch
switch(intGrades) {
case 10: case 9: strGrade="A"; break; case 8: strGrade="B"; break; case 7:
strGrade = "C";
break;
case 6:
strGrade="D";
break;
case 5: case 4: case 3: case 2: case 1: strGrade = "F";
break;
}
• Notice instead of using the To
keyword we can just assign multiple cases to a given statement.
• The break; as the end of each
case is required or the
program will continue to read through the statements.
• There could be multiple true
cases in C# unlike VB which stops after finding ONE true case.
• Break prevents this which is
Switch 2
If all cases are false and we want an action to
occur we use the default keyword:
switch (caseSwitch) {
case 1: Console.WriteLine("Case 1"); break; case 2: Console.WriteLine("Case 2"); break; default: Console.WriteLine("Default case"); break;
Select Case vs. Switch
The C# Switch statement does not allow
ranges or comparisons like the Select Case statement in Visual Basic. It also does not allow Boolean comparison.
This is one place where the VB
Loops
VB and C# each support the following loops:
Do
While
For
For each
In C# loops are written in the same syntax as an if
statement:
while (i< intNum) remember no semicolon on this line
{
Code to run in the loop; semicolon at the end of each code
statement unless using a if statement
Loop Examples
while (i <= 50)//pretest loop
{
intResult = intResult + i; i++;
}
do {
intResult = intResult + i; i ++;
For Statements
For statements are written completely differently in
C#:
for(i=0; i<=50; i++) {
intResult = intResult + i;
}
VB:
For i as Integer = 0 to 50 intResult = intResult + i Next i
Modifier – increment or decrement
Condition Initializer
Initializer Condition
Modifier – increment or
Step Keyword
In VB to count by a value other than 1 we use
the Step keyword. This is not supported in C#. To count by a value other than 1 we change the end of the statement.
To count by 2’s upward for example:
for(i=0; i<=50; i+=2)
To decrease by 2:
For each
The for each loop is handled differently in C# as well.
foreach(int j in intArray) //no space {
lstGrades.Items.Add(j); }
VB:
Arrays
In VB we use ( ) in array statements. In C# [ ] are
used instead.
Dim intArray = New Integer(4) {1, 2, 3, 4, 5} (VB)
int[] intArray = new int[5] {1,2,3,4,5}; (C#)
In VB we put in 1 less than the number of elements
we want in the array. This is NOT the case in C#. If we want five elements we use a 5.
C O M P U T E R P R O G R A M M I N G I S U M M E R 2 0 1 1
Breaking it Up
As programs gets more complex- they
become longer and harder to debug or even figure out what exactly is going on.
Functions, also called Methods, provide a
Declare a Method
When you declare a method, you will follow a
specific formula for the method header
access_modifier return_type Name ()
Access Modifier
We will only use the public in this course.
You can use private which would restrict use of the method.
Return Type
The return type will either be void, if there is no value
Declare a Method
Method Header Example:
public void Signature() {
lblResult.Text = “Created by J Smith”;
}
To use the method, you will “Call” it when
wanted.
Methods with Parameters
Parameters provide information to a method
that is necessary to do its job.
The method call provides the values – called
actual arguments.
You will add the “formal arguments” or
“parameters” to the method header.
Methods with Parameters
Method:
public void Signature(string Name ) {
lblResult.Text = “Written by: ” + Name; }
Call:
Signature(strName);
The arguments and parameters MUST match
Methods that Return a Value
When you specify a return type you will add a
return statement.
Method Header Example:
public string Signature() {
return “Created by J Smith”;
}
Return data type and what is returned MUST
match.
Methods that Return a Value
When a method returns a value, the method
call must be part of an assignment statement.
Method Call Example:
Two Ways to Pass Arguments
There are two ways to pass arguments. Pass-by-Value
Pass-by-Reference
Pass-by-Value is how we passed the variable
Pass-By-Value
This is the default way to pass arguments in
C#.
A copy of the value is made and sent to the
method.
Any changes are not passed back to the call.
Think of this as a one way street; the value
Pass-By-Reference
The method has the ability to access and
modify the original variable from the call.
Reference-type variables store references to
objects.
Think of it as sending the actual address of
Pass-By-Reference
To pass a variable by reference use the keyword
ref.
Apply the ref keyword to the parameter
declaration allows you to pass that variable by reference.
The ref keyword is used for variables that already have been initialized in the calling method.
It must be initialized, otherwise the compiler will generate
Pass-By-Reference
public void Calculate(int num1, ref int num2) {
num2 = num1 + 1; }
private void btnCalc_Click(object sender, EventArgs e) {
int n1 = 0; int n2 = 0;
Calculate(n1, ref n2);
lblResult.Text = n2.ToString(); //displays 1 in label
Conclusion
This PowerPoint provided an overview of
creating methods in C#.
Next step is to practice with sample
programs the skilled students have learned! The Unpacked Content will provide some
sample programs.
For more information on this topic
http://msdn.microsoft.com/en-us/library/aa645760(v=