:?: 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));
}
}
publicclassZ{publicintsuperComputer(intAlfa){intgama=1;gama+=Alfa;if((Alfa>4)&&(Alfa<10)){gama+=2*Alfa;}elseif(Alfa<=4){/* tava faltando um IF aqui ! */gama+=3*Alfa;}else{gama+=4*Alfa;}gama+=5*Alfa;returngama;}publicstaticvoidmain(String[]args){Zo=newZ();for(inti=0;i<12;i++)System.out.println("Generation("+i+") is:"+o.superComputer(i));}}
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>){
}elseif(<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+
Marcio_Duran
peczenyj:
É o esperado?
O if-else-else deve ser modificado para if-else if-else já resultaria em 111.
Todavia porque você implementou um contador ?
Zo=newZ(); for(inti=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.