Не удалось найти причину исключения переполнения
Я написал следующий код к вопросу упражнения, приведенному в конце книги, из которой я изучаю C#.. однако мой код выдает мне ошибку, и я не могу найти причину. Может ли кто-нибудь, пожалуйста, Просмотреть код и упомянуть проблемную область
///summary ///Write a program, which creates an array containing all Latin letters. ///The user inputs a word from the console and as result the program ///prints to the console the indices of the characters matching array static void Main() { char ch = 'A'; char[] alph = new char[26]; for (int row = 0; row < 26; row++) { alph[row] = ch; ch++; } for (int row = 0; row < 26; row++) { Console.Write(alph[row] + " "); } Console.WriteLine(); Console.Write("Enter word: "); string word = Console.ReadLine(); string wordUpper = word.ToUpper(); int wrdIdx = 0; for (int i = 0; true; i++) { if (wordUpper[wrdIdx] == alph[i]) //If below if is removed then this gives as error. Same error of overflow { Console.Write(i + " "); wrdIdx++; i = 0; if (wordUpper[wrdIdx] == wordUpper.Length - 1) //This line is giving error if i remove it then the error shows above in the IF statement. break; } } }
Это вывод и сообщение об ошибке, которое я получаю:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Enter word: Mohit 12 14 7 8 19 Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array. at System.String.get_Chars(Int32 index) at Revision.Program.Main(String[] args) in C:\Users\mohit\source\Revision\Revision\Program.cs:line 632
Что я уже пробовал:
Попытался отладить код. Но так как я новичок, то не могу понять, что происходит в отладчике.
Я прошу Вас дать очень простой ответ, не используя ничего внешнего из того, что я написал. Поскольку я мало что знаю о других функциях, предоставляемых различными классами и методами. Пожалуйста, попробуйте исправить только текущий код.
Прошу также извинить меня за мой английский.
Заранее спасибо.