Професионална програма
Loading...
+ Нов въпрос
markovski92 avatar markovski92 3 Точки

Защо не дава грешка?

Здравейте!

string verse = "be or not to be"; //Length = 15

int lastIndex = verse.LastIndexOf("be", 15);
Console.WriteLine(lastIndex);

Защо в случая програмата не гърми, след като дължината на стринга е 15, последният елемент е с индекс 14?

 

Ако се напише това, вече гърми:

string verse = "be or not to be"; //Length = 15

int lastIndex = verse.LastIndexOf("be", 16);
Console.WriteLine(lastIndex);

 

 

0
Module: C# Advanced
kkaraivanov avatar kkaraivanov 490 Точки
Best Answer

При първия пример не ти гърми защото метода обхожда точно колкота са елементите в масива " verse ", а във втория пример, метода LastIndexOf("be", 16) се опитва да достъпи 1 елемент повече и ти гръмва. Самият метод ще ти върне позицията на "b + 1" - 13. Ще получиш грешен отговор и ако напишеш израза така - LastIndexOf("be", 13) въпреки че "b" e 13-ия елемент в масива.

0
06/01/2020 18:03:57