+ 3
Помогите решить задачку
Вам дана программа, которая задает массив из 10 слов и принимает букву в качестве вводных данных. Напишите программу для перебора массива и вывода слов, содержащих принятую букву. При отсутствии подходящих слов, программа должна выводить "No match". Пример Входных Данных u Пример Выходных Данных fun ------------- Вот задача, дабы не писать стену кода сделал всё через цикл while, но возникает вопрос, в случае когда введённой буквы нет ни в 1 слове, консоль выдает "Нет вывода", что и логично, а как сделать так, чтобы она выводила "No match"? https://code.sololearn.com/c7ajBgJiT2q6/?ref=app
25 Answers
+ 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) 😊
Вы просто создали бесконечный цикл 😂



