Чтобы не казалось, что мой вариант сложнее, перепишу на Обероне-07, где ЦД есть явно:
## Код:
```
i := 0;
      oneZero := FALSE;
      WHILE (i < LEN(a)) & ~oneZero DO
         oneZero := a[i] = 0;
         INC(i);
      ELSIF (i < LEN(a)) & (a[i] # 0) DO
         oneZero := FALSE;
         INC(i);
      END;
```

Строк в цикле, между прочим, здесь 7 против 9

Ваш, правда, общее. Как раз на две строчки