Всем привет. Самостоятельно изучаю C#. Начал решать задачи с проекта Эйлера. Задача 1. (сначала хочу просто вывести в консоль все числа кратные 3 и 5)
class Program
{
static void Main(string[] args)
{
Console.WriteLine(summaNumbers(10));
}
static void summaNumbers(int x)
{
for (int i = 0; i <= x; i++)
{
if (i % 3 == 0 && i % 5 == 0)
{
Console.WriteLine(i);
}
}
}
}
В Console.WriteLine(summaNumbers(10)) возникает ошибка: не удается преобразовать из "void" в "bool".
Второй вариант задачи. Возвращает уже сумму чисел кратных 3 и 5.
class Program
{
static void Main(string[] args)
{
int z = summaNumbers(10);
Console.WriteLine(z);
}
static int summaNumbers(int x)
{
for (int i = 0; i <= x; i++)
{
int temp = 0;
if (i % 3 == 0 && i % 5 == 0)
{
temp = temp + i;
}
return temp;
}
}
}
Здесь возникает ошибка в методе summaNumbers(int x): не все ветви кода возвращают значение.
Вопросы:
1. Почему метод Console.WriteLine() пытается провести преобразования, он ведь должен просто вывести в консоль?
2. Где я в методе summaNumbers(int x) не поставил return.
3. Пробовал менять тип возвращаемого значения метода summaNumbers(int x): void, int, ставил return в разные строчки кода, все равно ошибка. Объясните как вообще использовать void и return, или дайте ссылку где почитать.
4. Может быть ошибка алгоритме или в других частях кода, подскажите.
Спасибо.