Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как исправить ошибку в 61 строке "Possible null reference return"?

Alexei Lav Ученик (97), на голосовании 3 месяца назад
Язык программирования: C#
Задание звучит так:
Написать программу, которая из имеющегося массива строк формирует новый массив из строк, длина которых меньше, либо равна 3 символам. Первоначальный массив можно ввести с клавиатуры, либо задать на старте выполнения алгоритма. При решении не рекомендуется пользоваться коллекциями, лучше обойтись исключительно массивами.

Примеры:
[“Hello”, “2”, “world”, “:-)”] → [“2”, “:-)”]
[“1234”, “1567”, “-2”, “computer science”] → [“-2”]
[“Russia”, “Denmark”, “Kazan”] → []

Сам код:
 // [“Rice”, “Chicken”, “Noodles”, “Pizza”] 
// [“Поспать”, “Полежать”, “Посидеть”, “Постоять”]
// [“Тут”, “Три”, “Слова”]

Commands();
string[] array = new string[] {};

string fromUser = ReadInput("Введите команду: ");
switch (fromUser)
{
case "1":
array = new string[] { "Rice", "Chicken", "Noodles", "Pizza" };
break;
case "2":
array = new string[] { "Поспать", "Полежать", "Посидеть", "Постоять" };
break;
case "3":
array = new string[] { "Тут", "Три", "Слова" };
break;
default:
Console.WriteLine($"{fromUser} - От 1 до 3, дружище.");
break;
}



int lenNewArray = 0;
for (int i = 0; i <= array.Length - 1; i++)
{
if (array[i].Length <= 3) lenNewArray++;
}

string[] newArray = new string[lenNewArray];
int idx = 0;

for (int i = 0; i <= array.Length - 1; i++)
{
if (array[i].Length <= 3)
{
newArray[idx] = array[i];
idx++;
}
}

PrintArray(array);
Console.Write("→ ");
PrintArray(newArray);

void Commands()
{
Console.WriteLine();
Console.WriteLine("1: [“Rice”, “Chicken”, “Noodles”, “Pizza”]");
Console.WriteLine("2: [“Поспать”, “Полежать”, “Посидеть”, “Постоять”]");
Console.WriteLine("3: [“Тут”, “Три”, “Слова”]");
Console.WriteLine();
}

string ReadInput(string msg)
{
Console.Write(msg);
return Console.ReadLine(); !ошибка тут!
}

void PrintArray(string[] array)
{
Console.Write("[ ");
for (int i = 0; i < array.Length; i++)
{
Console.Write($"“{array[i]}”, ");
}
Console.Write("] ");
}
Голосование за лучший ответ
no ? Ученик (200) 4 месяца назад
Перезагрузи компьютер
Jurijus Zaksas Искусственный Интеллект (445776) 4 месяца назад
Это не ошибка, просто предупреждение. В рамках своей задачи можешь его проигнорировать.

>При решении не рекомендуется пользоваться коллекциями, лучше обойтись исключительно массивами.
Офигеть! А ничего, что массив - это тоже коллекция?
Похожие вопросы