Может кто-нибудь объяснить это для цикла в C? для (x = i = 0; i <= 100; i + = 2, x + = i); - PullRequest
0 голосов
/ 27 октября 2019
for(x = i = 0; i <= 100; i += 2, x += i);

Почему приведенный выше код добавляет к x все четные числа, сложенные вместе от 0 до 102, включительно, в отличие от кода ниже, который сохраняет в x все четные числа, сложенные вместе от 0 до 100 включительно?

for(x = i = 0; i <= 100; i++){
    if (!(i % 2))
         continue;
    x = x + i;
}

1 Ответ

2 голосов
/ 27 октября 2019

Если это станет понятнее, первый фрагмент может быть переведен именно так:

i = 0;
x = 0;
while (i <= 100)
{
  i +=2;
  x += i; //sum of the even numbers from 2 to 102 inclusive
}

И второй, как это:

i = 0;
x = 0;
while (i <= 100)
{
  if (!(i % 2)) continue; //skip even numbers
  x += i; //sum of the odd numbers from 1 to 100
  i++; 
}
...