Оператори за 15 минути C#

Променливи в C# -    • Променливи за 15 минути C#   Инсталация на Visual Studio - (очаквайте скоро) Примитивни типове данни - (очаквайте скоро) Ние вярваме, че ученето може да бъде бързо и ефективно. Само за 15 минути смятам, че могат да бъдат обяснени сложни концепции в програмирането като се дават примери от нашето ежедневие. Определено операторите за извършване на прости пресмятания не са особено голяма изненада. Използваме знака + за да съберем две числа или да конкатенираме стринг: int number1 = 5; int number2 = 10; int result = number1 + number2; Console.WriteLine(result); В този пример използваме целочислен тип данни и инициализираме три променливи от него. Първите две държат числата 5 и 10, а в третата се записва резултатът от събирането им. Накрая извеждаме резултата на конзолата като тя изписва следния резултат: 15 Press any key to continue . . . Следващия оператор е.... Несъмнено познахте - обратно на събирането, а то е изваждане и се извършва с "-" символ. Ето един пример като само сменим знака между двете променливи: int number1 = 5; int number2 = 10; int result = number1 - number2; Console.WriteLine(result); А ето какво ни се извежда на конзолата като натиснем контрол и ф5: -5 Press any key to continue . . . До тук не беше чак толкова интересно. Нека сега да разгледаме оператора "*". Познахте ли за какво е? Използва се за умножение. Това е единствената особеност. Иначе си работи както очакваме: int number1 = 5; int number2 = 10; int result = number1 * number2; Console.WriteLine(result); С резултат на конзолата: 50 Press any key to continue . . . Сега, обаче следва по-интересния оператор "/" (оператор за делене). В този случай отговорът няма да е изненада: int number1 = 4; int number2 = 2; int result = number1 / number2; Console.WriteLine(result); Получаваме резултат: 2 Press any key to continue . . . Интересното е, обаче, какво се случва, ако едното число е нечетно: int number1 = 5; int number2 = 2; int result = number1 / number2; Console.WriteLine(result); Преди да ви покажа отговора на конзолата какво предположихте? 2.5? Грешка - ето една много голяма специфика на типизираните езици - при делене на две чилса от тип int винаги резултатът е целочислео число: 2 Press any key to continue . . . Сега ще кажете, че то е защото променливата result е от тип int. Нека променим нейния тип на double и да сравним разликата int number1 = 5; int number2 = 2; double result = number1 / number2; Console.WriteLine(result); Отговорът на конзолата отново е 2, обаче. Това е защото трябва както от лявата страна типизацията да позволява записване на число с десетично запетая, така и от лявата страна на равенството трябва да има променлива или число с десетична запетая. Ако променим примера си така: int number1 = 5; double number2 = 2; double result = number1 / number2; Console.WriteLine(result); Резултатът на конзолата най-накрая е това, което очаквахме: 2.5 Press any key to continue . . . Деленето на нула също е спорна тема: int number1 = 5; double number2 = 0; double result = number1 / number2; Console.WriteLine(result); Резултатът на конзолата: ? Press any key to continue . . . Каква е тази въпросителна ще попитате? Това е знака за INFINITY или безкрайност. Деленето на нула, когато има число с десетична запетая дава безкрайност заради IEEE 754 стандарта -
. Ако обаче на същия пример сменим типа на втораста променлива на целочислен: int number1 = 5; int number2 = 0; double result = number1 / number2; Console.WriteLine(result); Резултатът на конзолата е грешка: Unhandled Exception: System.DivideByZeroException: Attempted to divide by zero. at Program.Main(String[] args) in \demo_version_2\Program.cs:line 10 И последния оператор, който се използва за модулно делене, а именно "%". Да делим нещо модулно означава да получим като резултат остатъка от деленето. Пример: ако искаме да видим остатъка на деленото на 7 и 2: int number1 = 5; int number2 = 0; double result = number1 % number2; Console.WriteLine(result); Резултатът на конзолата е: 1 Press any key to continue . . . Как се получава? Питаме колко пъти точно се побира 2 в 7 отговора е 3. Умножаваме 3 по числото на което делим (3*2=6) и полученото го вадим от числото което делим (7-6=1). Отговора е 1. Ето някои примери: 56 % 10 = 6 598712 % 100 = 12

Смотрите также