2016-10-16 2 views
-2

Может кто-нибудь сказать мне, что делает эта функция? Я просто знаю, что он возвращает сумму x + y, но я хочу знать, почему. СпасибоЛюбопытно, что делает эта функция

public static int f(int x, int y){ 
    while(y > 0){ 
     x = x + 1; 
     y = y - 1; 
    } 
    return x; 
} 
+1

Шаг за шагом шаг за шагом и приложите немного усилий для исследования вещей в следующий раз, когда у вас возникнет вопрос. –

+3

если 'y <= 0', он просто возвращает' x', а не сумму x + y –

+0

. Эта функция добавляет 1 y раз к x. Итак, он возвращает x + y –

ответ

0

Петля начинается с значения y и уменьшает ее на каждой итерации, останавливаясь, когда y достигает нуля.

Для каждой из этих итераций 1 добавляется к x. Поэтому, для «единицы» y, a «единица» добавляется к x.

Редактировать Как было отмечено в комментариях, функция будет не возврата сумма двух чисел, если y меньше, то нулю, так как цикл не будет выполняться на всех.

+0

Вы предполагаете, что 'y' начинается со значения, большего нуля. Как отмечает Дмитрий Быченко в своем комментарии, если 'y' начинается со значения нуля или меньше нуля, то ничего не добавляется в' x', и возвращается исходное значение 'x'. – Bobulous

+0

@Bobulous Спасибо; отредактировано –

-1

Дополнение можно рассматривать как последовательность шагов. Вот что делает эта функция. Он увеличивает xy и возвращает результат x + y. Предполагается, что y является натуральным числом.

+0

Может ли кто-нибудь объяснить downvotes и запрос на удаление? Я не понимаю. –

+0

Я не знаю, я думаю, что ваш ответ тоже полезен. Я дал вам +1 –

+1

. Я проигнорировал, потому что, как объясняли другие комментарии и ответы, метод не всегда возвращает 'x + y', поэтому заявить, что он возвращает это неверно. Если вы получаете downvotes, то удалите или измените свой ответ, чтобы решить любые проблемы, подобные этому. (Конечно, если вы внимательно проверите ответ и решите, что все в порядке, то оно должно просто игнорировать downvotes.) – Bobulous

3

Есть два случая:

Первый случай:у < = 0
Поскольку цикл в то время является ложным, он просто возвращает х («он пропускает часть»)

Второй случай:y> 0
Поскольку цикл while верен, он возвращает х + у(х + число итераций)

Число итераций значение у, потому что с каждой итерации, у будет снижалась на 1 до тех пор, у = 0.

+0

Спасибо, что нашли время и ответили! :) Я изучаю :) – Hello

Смежные вопросы