Как переписать цикл for на цикл do while?

Есть код, который считает элементы с четными номерами и выводит их произведение. Как мне переписать его используя ТОЛЬКО цикл do..while?

int array[100];
int len;
int multi = 1;

cout << "Введите длину массива = ";
cin >> len;
cout << "Введите значения массива = ";
for (int i = 0; i < len; i++)
{
    cin >> array[i];
    if (array[i] % 2 == 0)
    {
        multi *= array[i];
    }
}
cout << "Произведение элементов с парными номерами = " << multi << endl;

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

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

Цикл for можно переписать на while так :

for ( A ; B ; C )
  D ;

{ A ;
  while ( B ) {
    D ;
continu :
    C ; } }

А если вам нужно конкретно do while то нужно вручную делать сначала сравнение.

{ A ;
  if ( B ) {
    do {
      D ;
continu :
      C ; 
    } while ( B ) ; } }

ваш пример :

for (int i = 0; i < len; i++)
{
    cin >> array[i];
    if (array[i] % 2 == 0)
    {
        multi *= array[i];
    }
}

используем do while :

{ int i = 0;
  if ( i < len ) {
    do {
      cin >> array[i];
      if (array[i] % 2 == 0)
      {
        multi *= array[i];
      }
continu :
      i ++ ;
    } while ( i < len ) ; } }

Метка conitinu : потребуется, если в цикле использовалась команда continue ;. Вместо неё нужно делать goto continu ; .

→ Ссылка