我有下面的java。这是从菜单中调用的,其中用户输入对应于选项的数字(opcaoMenu),并且它基于此选项调用方法。这段代码的圈复杂度为8,我想减少它,但我不知道如何。
private static EstruturaStack decisaoMenu(EstruturaStack topoStack, int opcaoMenu) {
if (opcaoMenu == 1) {
topoStack = empilharChapa(topoStack);
}
if (opcaoMenu == 2) {
consultarTodasChapas(topoStack);
}
if (opcaoMenu == 3) {
topoStack = empilhar(topoStack);
}
if (opcaoMenu == 4) {
topoStack = esvaziarPatio(topoStack);
}
if (opcaoMenu == 5) {
verificarQuantidade(topoStack);
}
if (opcaoMenu == 6) {
filtrarPorPedido(topoStack);
}
if (opcaoMenu == 7) {
exibirMensagem("MENSAGEM DO PROGRAMA:\n\nOpção em desenvolvimento!", "Mensagem do Programa");
}
return topoStack;
}
由于
答案 0 :(得分:0)
如果授予opcaoMenu
始终在1..7范围内,则可以使用if-else化合物来缓解最后一个if。这将使复杂性降低1。
if (opcaoMenu == 1) {
topoStack = empilharChapa(topoStack);
}
else if (opcaoMenu == 2) {
consultarTodasChapas(topoStack);
}
else if (opcaoMenu == 3) {
topoStack = empilhar(topoStack);
}
else if (opcaoMenu == 4) {
topoStack = esvaziarPatio(topoStack);
}
else if (opcaoMenu == 5) {
verificarQuantidade(topoStack);
}
else if (opcaoMenu == 6) {
filtrarPorPedido(topoStack);
}
else {
exibirMensagem("MENSAGEM DO PROGRAMA:\n\nOpção em desenvolvimento!", "Mensagem do Programa");
}