+ 3
Помогите решить задачку
Вам дана программа, которая задает массив из 10 слов и принимает букву в качестве вводных данных. Напишите программу для перебора массива и вывода слов, содержащих принятую букву. При отсутствии подходящих слов, программа должна выводить "No match". Пример Входных Данных u Пример Выходных Данных fun ------------- Вот задача, дабы не писать стену кода сделал всё через цикл while, но возникает вопрос, в случае когда введённой буквы нет ни в 1 слове, консоль выдает "Нет вывода", что и логично, а как сделать так, чтобы она выводила "No match"? https://code.sololearn.com/c7ajBgJiT2q6/?ref=app
25 Antworten
+ 2
☺️
Во первых, когда вы инициализируете переменную, то ей нужно сразу присвоить значение, иначе будет выдавать ошибку, как в вашем случае.
Пример: bool f = false;
Напишите условие с проверкой f из этого алгоритма:
— "... в случае когда введённой буквы нет ни в 1 слове, консоль выдает "Нет вывода"... "
+ 2
И ещё, флажок f не нужно сравнивать, if(f == false) аналогично if(!f).
Когда в "теле" условия одно выражение, то фигурные скобки не нужны:
if(!f)Console.WriteLine("No match");
+ 1
например с помощью логической переменной bool
+ 1
Спасибо
+ 1
Все классно, но, как, я помню до bool ещё там не дошли. Используй foreach и не забудь про счётчик count, данный по умолчанию. Решение через булл интересное, но тут суть форич понять надо и как это работает. Ниже код.
foreach (string n in words)
{
if (n.Contains(letter))
{
Console.WriteLine(n);
count++;
}
}
while (count == 0)
{
Console.WriteLine("No match");
}
+ 1
Я так же ломал голову, пока не понял, что подсказка в count. Это одна из самых интересных задач в c#.
+ 1
Артем Попов, в вашем коде:
foreach (string n in words)
{
if (n.Contains(letter))
{
Console.WriteLine(n);
count++;
}
}
while (count == 0)
{
Console.WriteLine("No match");
}
Надо добавить break в цикл while, иначе будет выдавать No match бесконечно
foreach (string n in words)
{
if (n.Contains(letter))
{
Console.WriteLine(n);
count++;
}
}
while (count == 0)
{
Console.WriteLine("No match");
break;
}
0
Ответ в вашем вопросе:
— "... в случае когда введённой буквы нет ни в 1 слове, консоль выдает "Нет вывода"... "
Вставьте в код данное условие.
0
Так в том и вопрос, как это сделать?
0
Хорошо, но если задавать значение переменной в цикле while, то после цикла ты ее применить на сможешь, перепробовал множество вариантов, так и не смог ничего сделать
0
Что-то по типу такого
https://code.sololearn.com/ciOL3ww4PN4t/?ref=app
0
Понял, раза с десятого 😐
0
☺️ Урааа! 👏👏👏👏👍
Рад за Вас. ☺️
0
Но рано расслоблятся ☺️
Вы недавно узнали о новом цикле foreach.
Используйте его вместо while.
0
Ну да, просто я тогда не додумался сделать через foreach, первое что в голову пришло был цикл while, сделал через него, а с bool подсказали уже
0
Согласен
0
Типы переменных - это самое начало изучения практически всех языков 😊
0
Там указывается что существует такая переменная, а как ей нормально пользоваться - разбирайся сам)
0
Но так то оно и правильно
0
Артем Попов
И да, вначале я тоже сделал с помощью счётчика, так как он фигурировал в предыдущем уроке, а потом понял что для решения данной задачи он абсолютно не нужен, также как и не нужен цикл while(count == 0) 😊
Вы просто создали бесконечный цикл 😂