Это здесь:
while(numA>0){
int numADig=numA%10;
использует оператор по модулю , чтобы "получить" последнюю цифру числа, см. здесь для получения дополнительной информации.Таким образом, этот первый шаг возвращает вам «3», например, из 13.
Позже вы делаете:
numA=numA/10;
, что превращает 13 в 1 (целое деление)!Это начальное условие цикла гарантирует, что вы остановитесь, когда вы выполнили 13/10 .., а затем 1 / 10.
Таким образом, этот цикл превращает 13 в 3, затем 1, а затем останавливается.
И тот же «метод» используется для получения цифр второго числа.И как только вы найдете цифру в обоих числах, вы можете вернуть true.
В противном случае, если вы прошли все цифры первого числа и сравнили их со всеми цифрами во втором числе ... нет совпадений, верните false.
Реальный ответ здесь, кстати: когда вы не понимаете, что делает код:
- используйте поисковую систему для исследования всего неизвестного вам источника
- используйте отладчик или простой System.outоператоры .printl (), позволяющие вам наблюдать , что делает код
- , а затем, наконец, когда все это терпит неудачу и оставляет у вас сомнения, тогда приходите сюда и просите о помощи