350 likes | 492 Views
BİL528 – Bilgisayar Programlama II. Making Decisions, Loops, Debugging, Designing Objects Using Classes. Contents. Making Decisions if, else, switch Loops for, while, do-while, foreach Debugging by using Visual Studio features try…catch…finally Designing Objects using Classes.
E N D
BİL528 – Bilgisayar Programlama II Making Decisions, Loops, Debugging, Designing Objects Using Classes
Contents • Making Decisions • if, else, switch • Loops • for, while, do-while, foreach • Debugging • by using Visual Studio features • try…catch…finally • Designing Objects using Classes
if Statement if (expression) <statement to execute when expression is true>; if (expression) { <statement 1>; <statement 2>; }
Exercise • Write a program which checks whether an integer number written in a textbox is less than 100 or not.
if..else if (expression) <statement to execute when expression is true>; else <statement to execute when expression is false>; • If there are more statements, use curly brackets.
Nested if..else Statements if (expression1) { if (expression2) { <statements1> } else { <statements2> } } else { <statements3> }
switch switch (expression) { casevalue1: ... break; casevalue2: ... break; default: ... break; }
switch Example In C, only integer values can be used as the expression but in C#, strings can be used too. switch (strProfession) { case "teacher": MessageBox.Show("You educate our young"); break; case "programmer": MessageBox.Show("You are most likely a geek"); break; case "accountant": MessageBox.Show("You are a bean counter"); break; default: MessageBox.Show("Profession not found in switch statement"); break; } Don’t forget to use breaks!
switch Exercise • Write a program which displays the names of some animals (horse, dog, bird, cat, snake, and centipede) in a combobox and displays the number of legs of the selected animal.
Solution for the switch Exercise switch (cboAnimals.Text) { case “Bird”: MessageBox.Show(“The animal has 2 legs.”); break; case “Dog”: // Notice there is no code here to execute. case “Horse”: // Notice there is no code here to execute. case “Cat”: MessageBox.Show(“The animal has 4 legs.”); break; case “Snake”: MessageBox.Show(“The animal has no legs.”); break; case “Centipede”: MessageBox.Show(“The animal has 100 legs.”); break; default: MessageBox.Show(“You did not select from the list!”); break; }
for Loop for (initializers; check_condition; modifying_expressions) { <statements> } • Example: for (i = 0; i < 10; i++) { MessageBox.Show("i = " + i.ToString()); }
while Loop while (expression) { <statements> }
do-while Loop do { <statements> } while (expression);
foreach Loop foreach (<type> <name> in <list>) { <statements> }
Displaying Months using for Loop string[] months = new string[] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; for (int i = 0; i < months.Length; i++) { MessageBox.Show(months[i]); }
Displaying Months using foreach string[] months = new string[] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; foreach (string month in months) { MessageBox.Show(month); }
Exercise • Display first ten prime numbers in a listbox.
Debugging • No one writes perfect code. • You’re most certainly familiar with those problems that prevent code from executing properly; they’re called bugs. • We can’t teach you how to debug every possible build or runtime error you might encounter. • Debugging is a skilland an art.
About Commenting… • Document the code’s purpose (the why, not the how). • Clearly indicate the thinking and logic behind the code. • Call attention to important turning points in the code. • Reduce the need for readers to run a simulation of the code execution in their heads. • Comment your code as you are typing it. If you wait until the code is complete, you probably won’t go back and add comments.
Identifying the Two Basic Types of Errors • Build Errors • Visual C# won’t compile a project that has a build error in it. • Example: Calling a method with incorrect parameters. • Runtime Errors • Encountered when the project is being run. • Example: Division by zero.
Debugging Steps in Visual Studio • Locate the cursor to the line at which you want the program stops • Put a break point by pressing F9 • Run the program by pressing F5 • The program stops at each breakpoint and you can see the values of the variables by moving mouse pointer on them • Press F10 to execute a single line, or F11 to enter into a method • Press F5 to continue, or Shift+F5 to stop debugging
Immediate Window • You can execute some statements using the Immediate Window at debugging time. • Just write the expression and press Enter.
Locals and Watch Windows • You can see the local variables in Locals window at debugging time. • If there are so many local variables in your code, watching a specific variable may be harder. • In this case, you can use the Watch window. • Just write the expressions into the Watch window!
try..catch..finally • While running a program through the IDE (i.e. during the development step, or Debug mode), you receive an error message if an error occurs. • However, if your program runs in the final version (or Release mode), an error causes your program to terminate. • For these cases, you may prefer using structured exception handling (or try..catch..finally)
Sections of the try Structure • try: The try section is where you place code that might cause an exception. • catch: Code within the catch section executes only when an exception occurs. • finally: Code within the finally section occurs when the code within the try and/or catch sections completes. This section is where you place your cleanup code—code that you always want executed, regardless of whether an exception occurs.
try Example int number = int.Parse(tbNumber.Text); int result = 100 / number; tbResult.Text = result.ToString(); An error may occur if the number is zero! An error may occur while converting a text into an integer!
try Example – Solution 1 try { int number = int.Parse(tbNumber.Text); int result = 100 / number; tbResult.Text = result.ToString(); } catch { tbResult.Text = “An error occurred!”; }
try Example – Solution 2 try { int number = int.Parse(tbNumber.Text); int result = 100 / number; tbResult.Text = result.ToString(); } catch (ArgumentException ex1){ tbResult.Text = “An ArgumentException error occurred!”; } catch (DivideByZeroException ex2) { tbResult.Text = “The divisor can’t be zero”; } catch (Exception ex) { tbResult.Text = “An unspecified error occurred. The details is: ” + ex.Message; }
try Example – Solution 3 int result = 0; try { int number = int.Parse(tbNumber.Text); result = 100 / number; } catch (Exception ex) { MessageBox.Show(“An unspecified error occurred. The details is: ” + ex.Message); } finally { tbResult.Text = result.ToString(); }
try Example on Database Operations try { … // Open database … // Make some operations on the database } catch { … // Error handling statements } finally { … // Close the database }
Designing Objects Using Classes • We are omitting this chapter since it is related to object oriented programming, which is the next semester's course. • However I strongly recommend you to read this chapter at home.