Может кто-нибудь объяснить, как этот кусок кода работает в предстоящем тесте? - PullRequest
0 голосов
/ 08 января 2019

Может кто-нибудь объяснить, пожалуйста, результат этого кода

Я получил ответ -8 от запуска кода, но не понимаю, как вы его получили

int a = 16, b = 8, c = 0;
while((a >= 0) && (b != 0))
{
    if (a<b) {
        a=a-b; 
    } else {
        b=b + a; 
    }
    if(a==0) {
        c=b; 
    } else {
        c=a; 
    }
}
System.out.println(c);

выход: -8

1 Ответ

0 голосов
/ 08 января 2019

это делает 2 петли. Это начальное состояние:

  1. значения: {a=16, b=8, c=0}

Теперь давайте попадем внутрь первого цикла, где a > b, поэтому

  1. значения: {a=16, b=24, c=16}

Последний цикл, где a < b, поэтому

  1. значения: {a=-8, b=24, c=-8}

, затем c=-8. Вот почему вывод -8.

...