Controle de Fluxo , exceções e assertivas

:?: Bom, o codigo abaixo falha, todavia se alterar a posição dos If e Else recebo um determinado valor.Porém o Calculo da resposta só finaliza-se de depois que eu retorno o valor Int de Alfa ? , ou já tenho isso depois de todas as comporações booleanas.

public class InterfaceServidor{ public int superComputer(int Alfa) { int gama=1; gama +=Alfa; if((Alfa >4) &&(Alfa<10)){ gama+=2*Alfa; }else (Alfa<=4){ gama+=3*Alfa; }else{ gama+=4*Alfa; } gama +=5*Alfa; return gama; } public static void main(String [] args){ InterfaceServidor o=new InterfaceServidor(); System.out.println("Generation(11) is:"+o.superComputer(11)); } }

[code]public class Z{
public int superComputer(int Alfa) {
int gama=1;
gama += Alfa;

            if((Alfa >4) &&(Alfa<10)){
                    gama+=2*Alfa;
            }else if(Alfa<=4){ /* tava faltando um IF aqui ! */
                    gama+=3*Alfa;
            }else{
                    gama+=4*Alfa;
            }
            gama +=5*Alfa;
            return gama;
    }
    public static void main(String [] args){
            Z o=new Z();
            for(int i=0;i<12;i++)
                    System.out.println("Generation("+i+") is:"+o.superComputer(i)); 
    }

}[/code]

Retorna isso:
Generation(0) is:1
Generation(1) is:10
Generation(2) is:19
Generation(3) is:28
Generation(4) is:37
Generation(5) is:41
Generation(6) is:49
Generation(7) is:57
Generation(8) is:65
Generation(9) is:73
Generation(10) is:101
Generation(11) is:111

É o esperado?

Em relação a sintaxe, o erro está no seu primeiro “else”.
O operador ELSE é equivalente ao SENÃO em pseudo-código, ou seja, se nenhuma das condições do SE (IF) forem atendidas o bloco que ele delimita será executado.
O que vc pretende é fazer é um SENÃO SE, correto?! Use ELSE IF:


if ( <condicao> ) {
  
} else if (<outraCondica>) {
  
} else {

}

Em relação a lógica, não entendo que seu código faz! hehe
De qqr forma, note que a linha “gama += 5*Alfa” sempre será executada!

t+

[quote=peczenyj]
É o esperado?[/quote]

O if-else-else deve ser modificado para if-else if-else já resultaria em 111.

Todavia porque você implementou um contador ?

 Z o=new Z();  
 for(int i=0;i<12;i++) 

Outra pergunta, você não pensou no objeto que retornou a classe e as variáveis que estavam recebendo os valores na comparação pelos os operando, e alterou a regra do código.

Você mundou o problema, mas não respondeu a pergunta de como o processamento se deu.

Porém o Calculo da resposta só finaliza-se de depois que eu retorno o valor Int de Alfa ? , ou já tenho isso depois de todas as comporações booleanas.