Я бы начал с внутреннего кода цикла: например, внутри внутреннего, если у вас есть
c1 = c1+c1 ;
c3 ++ ;
c1 /= 2 ;
c3 -= 1 ;
, первая и третья строки отменяют друг друга ... и то же самое со вторым и четвертым.Удаляя те, которые вы получаете, вы получаете внутреннее, если это так:
if ( c2 < c3 )
{
}
, который можно исключить (также устраняя необходимость в c2, c3 vars), таким образом, вмещающий оператор выглядит следующим образом:
do
{
c1 += 7 ;
System.out.println( c1 ) ;
}
while ( c1 % 8 != 0 );
Если мы сделаем шаг вверх и перевернем вложение, если / иначе мы получим что-то вроде этого:
if ( c1 % 16 != 0 )
do
{
c1 += 7 ;
System.out.println( c1 ) ;
}
while ( c1 % 8 != 0 );
else
;
и пустое остальное можно удалить.Теперь, если вы сделаете еще один шаг вверх, вы получите:
while (c1 % 8 != 0)
if ( c1 % 16 != 0 )
do
{
c1 += 7 ;
System.out.println( c1 ) ;
}
while ( c1 % 8 != 0 );
An, вы полностью удалите if, так как он уже отмечен выше.Теперь, если вы напишите полный код, который вы получите:
c1 += 7 ;
System.out.println( c1 ) ;
while (c1 % 8 != 0)
do
{
c1 += 7 ;
System.out.println( c1 ) ;
}
while ( c1 % 8 != 0 );
c1 += 7 ;
System.out.println( c1 ) ;
, вы можете полностью удалить первое время while и начальное добавление / печать, поскольку первый цикл do будет иметь ту же семантику.
В конце вы должны получить что-то вроде этого:
do {
c1 += 7;
System.out.println(c1);
}
while (c1 % 8 != 0);
c1 += 7;
System.out.println(c1);
И если вам не нужно фактически печатать промежуточные значения, вы можете получить окончательное значение c1 с помощью простой математики в 1-2 шага: -).