Ошибка при вводе нулевых коэффициентов в диофантовом уравнении

Если программа получает на вход a = 0, b = 0, c - любое, то приложение вылетает. Ошибка появляется в этой строке if (c % gcd != 0)

public void print_solution(int a, int b, int c) {
            if (a == 0 && b == 0) {
                // Условие бесконечности решений
                if (c == 0) {
                    rezult.setText("x - любое число " +
                            System.getProperty("line.separator") + "y - любое число");
                }
                // Условие отсутствия решений
                else {
                    rezult.setText("Решений нет");
                }
            }

            int gcd = gcd_extend(a, b);
            // Условие отсутствия решений
            if (c % gcd != 0) {
                rezult.setText("Решений нет");
            } else {
                // Решение
                rezult.setText("x = " + x * (c / gcd) +
                        System.getProperty("line.separator") + "y = " + y * (c / gcd));
                }
            }

            int x, y;
            public int gcd_extend(int a, int b) {

                // Базовый вариант
                if (b == 0) {
                    x = 1;
                    y = 0;
                    return a;
                } else {
                    int g = gcd_extend(b, a % b);
                    int x1 = x, y1 = y;
                    x = y1;
                    y = x1 - (a / b) * y1;
                    return g;
                }
            }

Ответы (1 шт):

Автор решения: MBo

Вставьте return в конце первого if в print_solution

        else {
                rezult.setText("Решений нет");
            }
            return;  
        }

иначе код выполняется дальше с нулевыми a и b

→ Ссылка