У меня есть дублированные структуры управления, которые абсолютно одинаковы, и разница в том, как все происходит внутри.В частности, я не знаю, что делать с break
, continue
и return
.Например:
int f() {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (isFoo(i, j)) {
// doSomethingF1
} else {
// doSomethingF2
}
}
}
}
int g() {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (isFoo(i, j)) {
// doSomethingG1
} else {
// doSomethingG2
}
}
}
}
, где doSomething
s полагается на i
и j
, и необходимо break
или continue
через цикл j
и return
изфункция.Как мне учесть это, чтобы избавиться от дублирования?
Я думал о написании функции, которая будет принимать doSomething
s в качестве аргументов, но я не уверен, как поступить с break
s, continue
s или return
s.
[Я не в порядке с дублированием, поскольку есть некоторые проверки для i
и j
в f()
, g()
и, подобно четырем другим функциям, которые точно такие же;единственное отличие - несколько строк кода.]