Difference between revisions of "Intro Week 4"

esse quam videri
Jump to: navigation, search
(Home Work)
m (Text replacement - "<csharp>" to "<syntaxhighlight lang="csharp" line="1" >")
Line 11: Line 11:
 
For example consider a program that asks the user what their favorite number is.
 
For example consider a program that asks the user what their favorite number is.
  
<csharp>
+
<syntaxhighlight lang="csharp" line="1" >
 
using System;
 
using System;
 
using System.Collections.Generic;
 
using System.Collections.Generic;
Line 48: Line 48:
 
This program can be fixed be using a try and catch
 
This program can be fixed be using a try and catch
  
<csharp>try
+
<syntaxhighlight lang="csharp" line="1" >try
 
{
 
{
 
//some crazy code that may cause errors
 
//some crazy code that may cause errors
Line 71: Line 71:
 
      
 
      
  
<csharp>for (int i=0; i < 10; i++)
+
<syntaxhighlight lang="csharp" line="1" >for (int i=0; i < 10; i++)
 
{
 
{
 
     Console.WriteLine("For Loop " + i + "<br />");
 
     Console.WriteLine("For Loop " + i + "<br />");
Line 89: Line 89:
 
For Loop 9
 
For Loop 9
 
</pre>
 
</pre>
<csharp>for (int i=0; i < 20; i++)
+
<syntaxhighlight lang="csharp" line="1" >for (int i=0; i < 20; i++)
 
{
 
{
 
     if (i == 10)
 
     if (i == 10)
Line 118: Line 118:
 
   while (expression) statement
 
   while (expression) statement
  
<csharp>
+
<syntaxhighlight lang="csharp" line="1" >
 
int MyInt = 0;  //iterator for while loop
 
int MyInt = 0;  //iterator for while loop
  
Line 147: Line 147:
 
      
 
      
  
<csharp>
+
<syntaxhighlight lang="csharp" line="1" >
 
int myIntDo = 0;  //iterator for do loop
 
int myIntDo = 0;  //iterator for do loop
  
Line 171: Line 171:
  
  
<csharp>string doLoopResult2 = "";
+
<syntaxhighlight lang="csharp" line="1" >string doLoopResult2 = "";
 
int myIntDo2 = 30;
 
int myIntDo2 = 30;
 
do
 
do
Line 184: Line 184:
 
'''Notice''' the do loop always executes once as it doesn't check the iterator until after execution.
 
'''Notice''' the do loop always executes once as it doesn't check the iterator until after execution.
  
<csharp>
+
<syntaxhighlight lang="csharp" line="1" >
 
Random r = new Random();    //Get a new Random Object
 
Random r = new Random();    //Get a new Random Object
 
              
 
              

Revision as of 18:22, 25 January 2016

Try and Catch

Another branching statement used to catch runtime errors.

Try and catch is useful when you are going to do something that may cause a run time error. These errors may occur when

  • Parsing user input
  • Converting Datatypes
  • Trying to connect to a remote server
  • Connecting to a database

For example consider a program that asks the user what their favorite number is.

<syntaxhighlight lang="csharp" line="1" > using System; using System.Collections.Generic; using System.Text;

namespace FavoriteNumber {

   class Program
   {
       static void Main(string[] args)
       {
           int intFavNumber;
           string strFavNumber;
           
           Console.Write("What is you favorite number?");
           strFavNumber = Console.ReadLine();
           intFavNumber = Int16.Parse(strFavNumber);
       }
   }

} </csharp>

if you type 'monkey' for your favorite number the program crashes with the folling message


Unhandled Exception: System.FormatException: Input string was not in a correct format.
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolea
n parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at System.Int16.Parse(String s, NumberStyles style, NumberFormatInfo info)
   at FavoriteNumber.Program.Main(String[] args)

This program can be fixed be using a try and catch

<syntaxhighlight lang="csharp" line="1" >try { //some crazy code that may cause errors } catch (Exception e) {

   string strError = e.ToString();

}</csharp>

Looping Statements

  • for
  • while
  • do... while
  • foreach (we'll do this after we do arrays)

for

syntax

    for ([initializers]; [expression]; [iterators]) statement
    

<syntaxhighlight lang="csharp" line="1" >for (int i=0; i < 10; i++) {

   Console.WriteLine("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

<syntaxhighlight lang="csharp" line="1" >for (int i=0; i < 20; i++) {

   if (i == 10)
           break;
   if (i % 2 == 0)
           continue;
   Console.WriteLine( "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

<syntaxhighlight lang="csharp" line="1" > int MyInt = 0; //iterator for while loop

while (MyInt < 10) {

   Console.WriteLine("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);
   

<syntaxhighlight lang="csharp" line="1" > int myIntDo = 0; //iterator for do loop

do {

   Console.WriteLine("do Loop " + myIntDo + "\n");
   myIntDo++;

} while (myIntDo < 10); //Check interator</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


<syntaxhighlight lang="csharp" line="1" >string doLoopResult2 = ""; int myIntDo2 = 30; do {

       doLoopResult2 +="do Loop " + myInt + "\n";
       myIntDo2++;

} while (myIntDo2 < 10);</csharp>

produces do Loop 30

Notice the do loop always executes once as it doesn't check the iterator until after execution.

<syntaxhighlight lang="csharp" line="1" > Random r = new Random(); //Get a new Random Object

//Choose a number between 1 and 10 int randNunberBetweenOneandTen = r.Next(10) + 1;

//Write the random number Console.WriteLine(randNunberBetweenOneandTen); </csharp>

Home Work

Guessing Game with a while loop where the program guesses a random number.

It should then ask the user to guess the number. If the number is correct say you win. If the guess is incorrect tell the user if the random number is higher or lower and allow then to guess again.

1 extra point for counting and displaying the number of guesses.