:?: 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.