Difference between revisions of "OOP Class3"
(→IN Class) |
(→Home work) |
||
Line 481: | Line 481: | ||
==Home work== | ==Home work== | ||
+ | |||
+ | 1. Create three more versions of 99 bottles of beer. | ||
+ | *for | ||
+ | *do | ||
+ | |||
+ | extra credit foreach | ||
+ | |||
+ | 2. Write Hello Jeff | ||
+ | :write a console appliaction that can ask the user thier name and then say hello to them | ||
+ | |||
+ | What is you name? | ||
+ | Jeff | ||
+ | Hello Jeff | ||
+ | |||
+ | |||
+ | |||
+ | <!-- | ||
+ | |||
5pts | 5pts | ||
*Create a console Game of Chance | *Create a console Game of Chance | ||
Line 500: | Line 518: | ||
[http://iam.colum.edu/oop/gbrowser.php?file=/classsource/class3/CoinFilpperFunner.cs CoinFilpperFunner.cs] | [http://iam.colum.edu/oop/gbrowser.php?file=/classsource/class3/CoinFilpperFunner.cs CoinFilpperFunner.cs] | ||
+ | |||
+ | --> | ||
Quiz 1 next week over weeks 1-3 and Chapter 1-7 in Learning c# | Quiz 1 next week over weeks 1-3 and Chapter 1-7 in Learning c# |
Revision as of 07:41, 18 September 2007
Contents
Operators
ECMA-334 Operators and punctuators
Assignment
The Assigment operator in c# is the '=' sign. You can assign variables like this...
<csharp>int myVar; //declare varible of type int called myVar myVar = 15; //assign myVar the value of 15 using the '=' sign</csharp>
Comparison Operators
Operator | Description |
== | Equality |
< | Less Than |
<= | Less than or equal to |
> | Greater than |
>= | Greater than or equal to |
!= | Ineqaulity |
Logical Operators
Operator | Description |
&& | Logical AND |
II | Logical OR (note the II are really pipes) |
! | Logical NOT |
Boolean Expressions
Logical operators usually work on bollean expressions. Boolean expressions are is a statment that evaluates to true of false
(1 < 2) or (y == x)
Boolean expressions are often grouped with logical operator to combine comparisons
(x > 0) && (x <100) //x is greater than 0 and less than 100
(x < 0) || (x >100) //x is less than zero or x is greater than 100
Logical operator Precedence
- ! (NOT)
- && (AND)
- || (OR)
Branching
evil goto - I won't show it figure it out on your own...
- if
- switch
Looping
- for
- while
- do... while
- foreach
Branching Statements
if
syntax
<csharp>if (expression)
// statement
if (expression) {
// statements // statements
} if (expression) {
// statements // statements
} else {
// statements
}</csharp>
About braces and indenting. I usually use BSD/Allman Style.
Jargon File
indent style n.
The One True Brace Style
Console Input There are several ways to get data into your program. One of the simplest is to have someone type it into the console. The frame work supports Console.ReadLine() this method reads on line from the input of the console.
EchoOnce.cs
Another popular way to get data into your program is to send it in as an argument when the program is run.
HelloName.cs
HelloNameSafe.cs
if example IfSelection.cs - source
The following code uses a bunch of operator and if staments to do some basic sanity checks. Analye it and try to predict the output
sanityCheck.cs - source
switch
syntax
switch (expression)
{ case constant-expression: statement jump-statement [default: statement] }
example 1
<csharp>// switch with integer type switch (myInt) {
case 1: Console.WriteLine("Your number is {0}.", myInt); break; case 2: Console.WriteLine("Your number is {0}.", myInt); break; case 3: Console.WriteLine("Your number is {0}.", myInt); break; default: Console.WriteLine("Your number {0} is not between 1 and 3.", myInt); break;
}</csharp>
Switch1to3.cs
Switch1to3WithTryAndCatch.cs
fall though and goto case
<csharp>// fall though and goto case switch (myChoice) {
case "NewLeft": Console.WriteLine("Newleft is voting Democratic."); goto case "Democrat"; case "Democrat": Console.WriteLine("You voted Democratic."); break; case "CompassionateRepublican": case "Republican": Console.WriteLine("You voted Republican."); break; default: Console.WriteLine("Please vote...."); break;
}</csharp>
Looping Statements
for
syntax
for ([initializers]; [expression]; [iterators]) statement
<csharp>for (int i=0; i < 10; i++) {
forOneResult += "For Loop " + i + "
";
}</csharp>
Produces
For Loop 0 For Loop 1 For Loop 2 For Loop 3 For Loop 4 For Loop 5 For Loop 6 For Loop 7 For Loop 8 For Loop 9
<csharp>for (int i=0; i < 20; i++) {
if (i == 10) break;
if (i % 2 == 0) continue;
forTwoResult += "For Loop " + i + "
";
}</csharp>
Produces
For Loop 1 For Loop 3 For Loop 5 For Loop 7 For Loop 9
For loops can also be good to dynamically add or alter the contents or web controls. For example If I wanted a web control to have 100 items in it like this . I could use a for loop to add them here's an example
/infod/jeff/classSource/class3/DynamicAddDropdown.aspx - source
while
while syntax
while (expression) statement
<csharp>string whileLoopResult = ""; int MyInt = 0;
while (MyInt < 10) {
Whileloopresult +="While Loop " + MyInt + "\n"; MyInt++;
}</csharp>
produces
While Loop 0 While Loop 1 While Loop 2 While Loop 3 While Loop 4 While Loop 5 While Loop 6 While Loop 7 While Loop 8 While Loop 9
do
do... while syntax
do statement while (boolean-expression);
<csharp>string doLoopResult = ""; int myIntDo = 0;
do {
doLoopResult +="do Loop " + myIntDo + "
"; myIntDo++;
} while (myIntDo < 10);</csharp>
produces
do Loop 0 do Loop 1 do Loop 2 do Loop 3 do Loop 4 do Loop 5 do Loop 6 do Loop 7 do Loop 8 do Loop 9
<csharp>string doLoopResult2 = "";
int myIntDo2 = 30;
do {
doLoopResult2 +="do Loop " + myInt + "
"; myIntDo2++;
} while (myIntDo2 < 10);</csharp>
produces do Loop 30
for each
A for each loop requires and iterator.. more on this iterator thing later...
<csharp>string[] names = {"Cheryl", "Joe", "Matt", "Robert"}; foreach (string person in names) {
Console.Write (" " + person);
}</csharp>
produces
Cheryl Joe Matt Robert
The for each loop is a key component in polymorphism Remeber the age selector example what if we want to select more than one age. It would be simple to change the dropdownlist into a listboc and turn SelectionMode ="Multiple" so the user can select multiple items but how do check to see if every Item is selected. Is to have each item check itself and use a for each loop. /infod/jeff/classSource/class3/DynamicAddListBoxPoly.aspx - source
IN Class
Build a c# app that writes the words to 99 bottles of beer on the wall using a loopin statement
99 bottles of beer csharp example
Try and Catch
<csharp>try { //some crazy code that may cause errors } catch (Exception e) {
string FstrError = e.ToString();
}</csharp>
Asp.Net Example
/infod/jeff/classSource/class3/tryAndCatch.aspx -
Console Example
<csharp>using System; namespace HelloClass {
class HelloWorld { public static void Main() { object o2 = null; try { int i2 = (int) o2; // Error } catch (Exception e) { //put Exceptioninto string strError string strError = e.ToString(); //write error to label lblOutput Console.WriteLine(strError); } } }
}</csharp>
C:\User\csharp>csc try.cs Microsoft (R) Visual C# .NET Compiler version 7.10.3052.4 for Microsoft (R) .NET Framework version 1.1.4322 Copyright (C) Microsoft Corporation 2001-2002. All rights reserved. C:\User\csharp>try.exe System.NullReferenceException: Object reference not set to an instance of an obj ect. at HelloClass.HelloWorld.Main() C:\User\csharp>
/infod/jeff/classSource/class2/try.cs - source
Functions/Methods
Function help with code reuse. If your going to use it more than once make it into a funtions. syntax simple
[access-modifier] return type indentifier ( [parateters] ) {
//some code
}
access-modifiers
public
private
protected
internal
protected internal
more on these next week.
Defining
<csharp>string Hello () {
return "Hello ";
}
string HelloToName (string Name) {
return "Hello " + Name;
}</csharp>
Calling a finction in c#
<csharp>string firstHello, jeffHello; //declare some strings firstHello = Hello(); //call the function Hello jeffHello = HelloToName("Jeff"); //call the function HelloToName </csharp>
Console Example /infod/jeff/classSource/class3/function.cs - source
C:\User\csharp>csc function.cs Microsoft (R) Visual C# .NET Compiler version 7.10.3052.4 for Microsoft (R) .NET Framework version 1.1.4322 Copyright (C) Microsoft Corporation 2001-2002. All rights reserved. C:\User\csharp>function.cs C:\User\csharp>function.exe Hello World! Hello Hello Jeff Hello Marge C:\User\csharp>
Passing variable into a function/method passes be instance. Variables passed by instance do not actually pass in the original variable rather a copy or new instance of the variable is passed. It you want to pass in the actual variable you need to pass be referance Examples of passesing by instamce and passing by refecnce... /infod/jeff/classSource/class3/instanceReference.aspx - Source
Out Parameters
Functions can only return a single value. Out parametrs allow functions to return more than one value. They don't really retun multiple values it's more like passing varibles thought the function by refernce
<csharp>using System; public class Test { public static void Main() { Test t=new Test(); t.Run(); } public void Run() { Test t=new Test(); int Hour = 0; t.GetTime(out Hour); Console.WriteLine (Hour); } public void GetTime ( out int h ) { h = 10; } }</csharp>
produces
10
Variables
Scope
scope defines the life of a variable. Local Variables
Variables declared with functions/methods are only around as long as the function/method is running. These variables are known as local varables
Global Variables
Global variables are variables that are around for the entire length of execution. They are declared a public within the programs base class.
In c# since everything must be contianed in a class global variables do not really exist.
Block Level Variables
Block level variables exitist with the code block.
A code block is contained by { }.
Home work
1. Create three more versions of 99 bottles of beer.
- for
- do
extra credit foreach
2. Write Hello Jeff
- write a console appliaction that can ask the user thier name and then say hello to them
What is you name? Jeff Hello Jeff
Quiz 1 next week over weeks 1-3 and Chapter 1-7 in Learning c#