Печатане на текст и числа При печат в конзолата на текст, числа и други данни, можем да ги съединим, като използваме шаблони {0}, {1}, {2} и т.н. В програмирането тези шаблони се наричат placeholders.
var firstName = Console.ReadLine();
var lastName = Console.ReadLine();
var age = int.Parse(Console.ReadLine());
var town = Console.ReadLine();
Console.WriteLine("You are {0} {1}, a {2}-years old person from {3}.",
firstName, lastName, age, town);
Ето резултатът, който ще получим, след изпълнение на този пример:
Обърнете внимание как всяка една променлива трябва да бъде подадена в реда, в който искаме да се печата. По същество, шаблонът (placeholder) приема променливи от всякакъв вид.
Възможно е един и същ номер на шаблон да се използва по няколко пъти и не е задължително шаблоните да са номерирани поредно.
Ето пример:
Console.WriteLine("{1} + {1} = {0}", 1+1, 1);
Резултатът е:
1 + 1 = 2
Аритметични операции
Да разгледаме базовите аритметични операции в програмирането.
Събиране на числа (оператор +)
Можем да събираме числа с оператора +:
var a = 5;
var b = 7;
var sum = a + b; // резултатът е 12
Изваждане на числа (оператор -)
Изваждането на числа се извършва с оператора -:
var a = int.Parse(Console.ReadLine());
var b = int.Parse(Console.ReadLine());
var result = a - b;
Console.WriteLine(result);
Ето резултатът от изпълнението на програмата (при числа 10 и 3):
Умножение на числа (оператор *)
За умножение на числа използваме оператора *:
var a = 5;
var b = 7;
var product = a * b; // 35
Когато делим две цели числа, се извършва целочислено деление и полученият резултат е цяло число с отрязана дробна част. Например 11 / 3 = 3.
Когато делим две числа, от които поне едното е дробно, се извършва дробно деление и полученият резултат е дробно число, както в математиката. Например 11 / 4.0 = 2.75. При невъзможност за точно разделяне, резултатът се закръгля, например 11.0 / 3 = 3.66666666666667.
Целочисленото деление на 0 предизвиква грешка по време на изпълнение (runtime exception).
Дробното деление на 0 не предизвиква грешка, а резултатът е +/- безкрайност или специалната стойност NaN. Например 5 / 0.0 = ∞.
Ето няколко примера за използване на оператора за делене:
var a = 25;
var i = a / 4; // извършваме т.нар. целочислено деление:
// резултатът от тази операция ще бъде 6 – дробната част се
// отрязва, тъй като извършваме деление с цели числа
var f = a / 4.0; // 6.25 – дробно деление. Изрично сме указали числото 4 да се
// интерпретира като дробно, като сме добавили десетичната
// точка, следвана от нула
var error = a / 0; // Грешка: целочислено деление на 0
Да разгледаме и няколко примера за целочислено деление (запомнете, че при деление на цели числа в езика C# резултатът е цяло число):
var a = 25;
Console.WriteLine(a / 4); // Целочислен резултат: 6
Console.WriteLine(a / 0); // Грешка: деление на 0
Да разгледаме няколко примера за деление на дробни числа. При дробно делене резултатът винаги е дробно число и деленето никога не дава грешка и работи коректно със специалните стойности +∞ и -∞:
var a = 15;
Console.WriteLine(a / 2.0); // Дробен резултат: 7.5
Console.WriteLine(a / 0.0); // Резултат: Infinity
Console.WriteLine(-a / 0.0); // Резултат: -Infinity
Console.WriteLine(0.0 / 0.0); // Резултат: NaN (Not a Number), т.е. резултатът
// от операцията не е валидна числена стойност
При отпечатването на стойностите ∞ и -∞ на конзолата може да излязат ?, защото конзолата в Windows не поддържа коректно Unicode и поврежда повечето нестандартни символи, букви и специални знаци.
Горният пример най-вероятно ще изведе следния резултат:
7.5
?
-?
NaN