Можно ли избежать дублирования кода в таких случаях? (Java-код)
void f()
{
int r;
boolean condition = true;
while(condition)
{
// some code here (1)
r = check();
if(r == 0)
break ;
else if(r == 1)
return ;
else if(r == 2)
continue ;
else if(r == 3)
condition = false;
// some code here (2)
r = check();
if(r == 0)
break ;
else if(r == 1)
return ;
else if(r == 2)
continue ;
else if(r == 3)
condition = false;
// some code here (3)
}
// some code here (4)
}
int check()
{
// check a condition and return something
}
Возможным решением может быть использование исключений, но это не кажется хорошей практикой.
Существует ли так называемый хороший шаблон управления потоком программы в таких случаях? Например, способ вызова break ;
изнутри функции check()
.
(Возможно в других языках программирования)