Компилятор пишет, что не все ветви возвращают значения

Даны натуральные числа n, m. Получить все натуральные числа меньше
n, квадрат суммы цифр которых равен m.

Нужно написать программу в виде функции, я это сделал, но почему то не работает в виде функции, пишет что не все ветви возвращают значения, но пытаюсь вернуть i везде, но не получается.

        public static int Find(int m, int n)
        {
            int s, j;
            for (int i = 1; i < n; i++)
            {
                s = 0; j = i;
                do
                {
                    s = s + j % 10;
                    j = j / 10;
                 
                } while (j > 0);
                if (Math.Sqrt(s) == m)
                {
                    return i;
                }
                return i;
            }
        }


        private void button1_Click(object sender, EventArgs e)
        {
            int m = Convert.ToInt32(textBox1.Text);
            int n = Convert.ToInt32(textBox2.Text);
            label3.Text = Find(m, n).ToString();
        }

Не везде.
Что будет если n <= 1?

2 лайка

в качестве “лечения”

        public static int Find(int m, int n)
        {
            int s, j;
            for (int i = 1; i < n; i++)
            {
                s = 0; j = i;
                do
                {
                    s = s + j % 10;
                    j = j / 10;
                 
                } while (j > 0);
                if (Math.Sqrt(s) == m)
                {
                    return i;
                }
                return i;
            }
            return -1;

        }
1 лайк

Спасибо за мнение !

Спасибо за ваше мнение !