Implementing Control Logic in C# Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical trainer www.nakov.com.

Slides:



Advertisements
Similar presentations
Windows Basic and Dynamic Disk Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator Marian Marinov CEO of 1H Ltd.
Advertisements

HTML Forms, GET, POST Methods Tran Anh Tuan Edit from Telerik Academy
Make swiftly iOS development Telerik Academy Telerik Academy Plus.
Amazon S 3, App Engine Blobstore, Google Cloud Storage, Azure Blobs Svetlin Nakov Telerik Software Academy academy.telerik.com.
RPN and Shunting-yard algorithm Ivaylo Kenov Telerik Software Academy academy.telerik.com Technical Assistant
Shortest paths in edge-weighted digraph Krasin Georgiev Technical University of Sofia g.krasin at gmail com Assistant Professor.
Telerik Software Academy Telerik School Academy.
Asynchronous Programming with C# and WinRT
Character sequences, C-strings and the C++ String class, Working with Strings Learning & Development Team Telerik Software Academy.
Asya Georgieva Telerik Software Academy academy.telerik.com QA Trainer
Done already for your convenience! Telerik School Academy Unity 2D Game Development.
Processing Sequences of Elements Telerik School Academy C# Fundamentals – Part 1.
C# Fundamentals – Part I
NoSQL Concepts, Redis, MongoDB, CouchDB
The Business Plan and the Business Model Margarita Antonova Volunteer Telerik Academy academy.telerik.com Business System Analyst Telerik Corporation.
What are ADTs, STL Intro, vector, list, queue, stack Learning & Development Team Telerik Software Academy.
Making JavaScript code by template! Learning & Development Team Telerik Software Academy.
Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training Who, What, Why?
Access to known folders, using pickers, writing to and reading from files, caching files for future access George Georgiev Telerik Software Academy academy.telerik.com.
Accessing SQL Server and MySQL – Live Demo Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training
Processing Matrices and Multidimensional Tables Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Implementing Control Logic in C# Svetlin Nakov Telerik Corporation
Learning & Development Telerik Software Academy.
Reading and Writing Text Files Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Telerik Software Academy ASP.NET Web Forms.
Classical OOP in JavaScript Classes and stuff Telerik Software Academy
Optimization problems, Greedy Algorithms, Optimal Substructure and Greedy choice Learning & Development Team Telerik Software.
Using Selenium for Mobile Web Testing Powered by KendoUI Telerik QA Academy Atanas Georgiev Senior QA Engineer KendoUI Team.
NoSQL Concepts, Redis, MongoDB, CouchDB Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training
New features: classes, generators, iterators, etc. Telerik Academy Plus JavaScript.Next.
Creating E/R Diagrams with SQL Server Management Studio and MySQL Workbench Svetlin Nakov Telerik Software Academy Manager Technical.
Throwing and Catching Exceptions Tran Anh Tuan Edit from Telerik Software Academy
Handling Errors during the Program Execution Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Loops, Conditional Statements, Functions Tran Anh Tuan Edit from Telerik Academy
Private/Public fields, Module, Revealing Module Learning & Development Team Telerik Software Academy.
Building Data-Driven ASP.NET Web Forms Apps Telerik Software Academy ASP.NET Web Forms.
Course Introduction Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training
Telerik Software Academy End-to-end JavaScript Applications.
General and reusable solutions to common problems in software design Vasil Dininski Telerik Software Academy academy.telerik.com Intern at Telerik Academy.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation Team Leader, Team Pulse, Team Leader, Team Pulse, Telerik Corporation,
What you need to know Ivaylo Kenov Telerik Corporation Telerik Academy Student.
Conditional Statements Implementing Control-Flow Logic in C# SoftUni Team Technical Trainers Software University
Data binding concepts, Bindings in WinJS George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer itgeorge.net.
Pavel Kolev Telerik Software Academy Senior.Net Developer and Trainer
Objects, Properties, Primitive and Reference Types Learning & Development Team Telerik Software Academy.
When and How to Refactor? Refactoring Patterns Alexander Vakrilov Telerik Corporation Senior Developer and Team Leader.
Free Training and Job for Software Engineers Svetlin Nakov, PhD Manager Technical Training Telerik Corp. Telerik Software Academy.
Free Training and Job for Software Engineers Svetlin Nakov, PhD Manager Technical Training Telerik Corp. Telerik Software Academy.
Access to known folders, using pickers, writing to and reading from files, caching files for future access George Georgiev Telerik Software Academy academy.telerik.com.
Doing the Canvas the "easy way"! Learning & Development Telerik Software Academy.
Perform Calculations and Control Flow Telerik Software Academy Learning & Development Team.
Creating and Running Your First C# Program Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training
Course Overview Doncho Minkov Telerik Software Academy Technical Trainer
Subroutines in Computer Programming Telerik School Academy C# Fundamentals – Part 1.
Correctly Formatting the Source Code Nikolay Kostov Telerik Software Academy academy.telerik.com Senior Software Developer and Technical Trainer
Data Types, Primitive Types in C++, Variables – Declaration, Initialization, Scope Telerik Software Academy academy.telerik.com Learning and Development.
Learn to Design Error Steady Code Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Connecting, Queries, Best Practices Tran Anh Tuan Edit from Telerik Software Academy
Processing Sequences of Elements Telerik Software Academy C# Fundamentals – Part 2.
Telerik JavaScript Framework Telerik Software Academy Hybrid Mobile Applications.
Telerik Software Academy Databases.
Things start to get serious Telerik Software Academy JavaScript OOP.
Learning & Development Mobile apps for iPhone & iPad.
Processing Matrices and Multidimensional Tables Telerik Software Academy C# Fundamentals – Part 2.
Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer
Functions and Function Expressions Closures, Function Scope, Nested Functions Telerik Software Academy
Inheritance, Abstraction, Encapsulation, Polymorphism Telerik Software Academy Mobile apps for iPhone & iPad.
Mocking tools for easier unit testing Telerik Software Academy High Quality Code.
What why and how? Telerik School Academy Unity 2D Game Development.
Windows Security Model Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Presentation transcript:

Implementing Control Logic in C# Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical trainer

1. Comparison and Logical Operators 2. The if Statement 3. The if-else Statement 4. Nested if Statements 5. The switch-case Statement 2

4Operator Notation in C# Equals== Not Equals != Greater Than > Greater Than or Equals >= Less Than < Less Than or Equals <=  Example: bool result = 5 <= 6; Console.WriteLine(result); // True

 De Morgan laws  !!A  A  !(A || B)  !A && !B  !(A && B)  !A || !B Operator Notation in C# Logical NOT ! Logical AND && Logical OR || Logical Exclusive OR (XOR) ^ 5

Implementing Conditional Logic

 The most simple conditional statement  Enables you to test for a condition  Branch to different parts of the code depending on the result  The simplest form of an if statement: if (condition) { statements; statements;} 7

 The condition can be:  Boolean variable  Boolean logical expression  Comparison expression  The condition cannot be integer variable (like in C / C++)  The statement can be:  Single statement ending with a semicolon  Block enclosed in braces 8

 The condition is evaluated  If it is true, the statement is executed  If it is false, the statement is skipped true condition statement false 9

10 static void Main() { Console.WriteLine("Enter two numbers."); Console.WriteLine("Enter two numbers."); int biggerNumber = int.Parse(Console.ReadLine()); int biggerNumber = int.Parse(Console.ReadLine()); int smallerNumber = int.Parse(Console.ReadLine()); int smallerNumber = int.Parse(Console.ReadLine()); if (smallerNumber > biggerNumber) if (smallerNumber > biggerNumber) { biggerNumber = smallerNumber; biggerNumber = smallerNumber; } Console.WriteLine("The greater number is: {0}", Console.WriteLine("The greater number is: {0}", biggerNumber); biggerNumber);}

Live Demo

 More complex and useful conditional statement  Executes one branch if the condition is true, and another if it is false  The simplest form of an if-else statement: if (expression) { statement1; statement1;}else{ statement2; statement2;} 12

 The condition is evaluated  If it is true, the first statement is executed  If it is false, the second statement is executed condition firststatement true secondstatement false 13

 Checking a number if it is odd or even string s = Console.ReadLine(); int number = int.Parse(s); if (number % 2 == 0) { Console.WriteLine("This number is even."); Console.WriteLine("This number is even.");}else{ Console.WriteLine("This number is odd."); Console.WriteLine("This number is odd.");} 14

Live Demo

Creating More Complex Logic

 if and if-else statements can be nested, i.e. used inside another if or else statement  Every else corresponds to its closest preceding if if (expression) { if (expression) if (expression) { statement; statement; } else else { statement; statement; }}else 17

 Always use { … } blocks to avoid ambiguity  Even when a single statement follows  Avoid using more than three levels of nested if statements  Put the case you normally expect to process first, then write the unusual cases  Arrange the code to make it more readable 18

if (first == second) { Console.WriteLine( Console.WriteLine( "These two numbers are equal."); "These two numbers are equal.");}else{ if (first > second) if (first > second) { Console.WriteLine( Console.WriteLine( "The first number is bigger."); "The first number is bigger."); } else else { Console.WriteLine("The second is bigger."); Console.WriteLine("The second is bigger."); }} 19

Live Demo

 Sometimes we need to use another if - construction in the else block  Thus else if can be used: 21 int ch = 'X'; if (ch == 'A' || ch == 'a') { Console.WriteLine("Vowel [ei]"); Console.WriteLine("Vowel [ei]");} else if (ch == 'E' || ch == 'e') { Console.WriteLine("Vowel [i:]"); Console.WriteLine("Vowel [i:]");} else if … else …

Live Demo

Making Several Comparisons at Once

 Selects for execution a statement from a list depending on the value of the switch expression switch (day) { case 1: Console.WriteLine("Monday"); break; case 2: Console.WriteLine("Tuesday"); break; case 3: Console.WriteLine("Wednesday"); break; case 4: Console.WriteLine("Thursday"); break; case 5: Console.WriteLine("Friday"); break; case 6: Console.WriteLine("Saturday"); break; case 7: Console.WriteLine("Sunday"); break; default: Console.WriteLine("Error!"); break; } 24

1. The expression is evaluated 2. When one of the constants specified in a case label is equal to the expression  The statement that corresponds to that case is executed 3. If no case is equal to the expression  If there is default case, it is executed  Otherwise the control is transferred to the end point of the switch statement 25

Live Demo

 Variables types like string, enum and integral types can be used for switch expression  The value null is permitted as a case label constant  The keyword break exits the switch statement  "No fall through" rule – you are obligated to use break after each case  Multiple labels that correspond to the same statement are permitted 27

switch (animal) { case "dog" : case "dog" : Console.WriteLine("MAMMAL"); Console.WriteLine("MAMMAL"); break; break; case "crocodile" : case "crocodile" : case "tortoise" : case "tortoise" : case "snake" : case "snake" : Console.WriteLine("REPTILE"); Console.WriteLine("REPTILE"); break; break; default : default : Console.WriteLine("There is no such animal!"); Console.WriteLine("There is no such animal!"); break; break;}  You can use multiple labels to execute the same statement in more than one case 28

Live Demo

 There must be a separate case for every normal situation  Put the normal case first  Put the most frequently executed cases first and the least frequently executed last  Order cases alphabetically or numerically  In default use case that cannot be reached under normal circumstances 30

 Comparison and logical operators are used to compose logical conditions  The conditional statements if and if-else provide conditional execution of blocks of code  Constantly used in computer programming  Conditional statements can be nested  The switch statement easily and elegantly checks an expression for a sequence of values 31

форум програмиране, форум уеб дизайн курсове и уроци по програмиране, уеб дизайн – безплатно програмиране за деца – безплатни курсове и уроци безплатен SEO курс - оптимизация за търсачки уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop уроци по програмиране и уеб дизайн за ученици ASP.NET MVC курс – HTML, SQL, C#,.NET, ASP.NET MVC безплатен курс "Разработка на софтуер в cloud среда" BG Coder - онлайн състезателна система - online judge курсове и уроци по програмиране, книги – безплатно от Наков безплатен курс "Качествен програмен код" алго академия – състезателно програмиране, състезания ASP.NET курс - уеб програмиране, бази данни, C#,.NET, ASP.NET курсове и уроци по програмиране – Телерик академия курс мобилни приложения с iPhone, Android, WP7, PhoneGap free C# book, безплатна книга C#, книга Java, книга C# Николай Костов - блог за програмиране

1. Write an if statement that examines two integer variables and exchanges their values if the first one is greater than the second one. 2. Write a program that shows the sign (+ or -) of the product of three real numbers without calculating it. Use a sequence of if statements. 3. Write a program that finds the biggest of three integers using nested if statements. 4. Sort 3 real values in descending order using nested if statements. 33

5. Write program that asks for a digit and depending on the input shows the name of that digit (in English) using a switch statement. 6. Write a program that enters the coefficients a, b and c of a quadratic equation a*x 2 + b*x + c = 0 and calculates and prints its real roots. Note that quadratic equations may have 0, 1 or 2 real roots. 7. Write a program that finds the greatest of given 5 variables. 34

8. Write a program that, depending on the user's choice inputs int, double or string variable. If the variable is integer or double, increases it with 1. If the variable is string, appends " * " at its end. The program must show the value of that variable as a console output. Use switch statement. 9. We are given 5 integer numbers. Write a program that checks if the sum of some subset of them is 0. Example: 3, -2, 1, 1, 8  1+1-2=0. 35

10. Write a program that applies bonus scores to given scores in the range [1..9]. The program reads a digit as an input. If the digit is between 1 and 3, the program multiplies it by 10; if it is between 4 and 6, multiplies it by 100; if it is between 7 and 9, multiplies it by If it is zero or if the value is not a digit, the program must report an error. Use a switch statement and at the end print the calculated new value in the console. 36

11. * Write a program that converts a number in the range [ ] to a text corresponding to its English pronunciation. Examples: 0  "Zero" 273  "Two hundred seventy three" 400  "Four hundred" 501  "Five hundred and one" 711  "Seven hundred and eleven" 37

 Fundamentals of C# Programming Course  csharpfundamentals.telerik.com csharpfundamentals.telerik.com  Telerik Software Academy  academy.telerik.com academy.telerik.com  Telerik Facebook  facebook.com/TelerikAcademy facebook.com/TelerikAcademy  Telerik Software Academy Forums  forums.academy.telerik.com forums.academy.telerik.com