Mam problem z teoretycznie prostym przykładem. Program nie wykonuje obliczeń w niektórych blokach else if.
public class Test {
public static void main(String[] args){
for(double i=1;i<120;i=i+0.1){
Aproksymacja900 aa =new Aproksymacja900(i);
double bb=aa.aproksymacja900();
System.out.println("zasieg= "+i);
System.out.println("aa= "+bb);
}
}
}
public class Aproksymacja900 {
public Aproksymacja900(double zas){
zasieg=zas;
}
public double aproksymacja900(){
if(zasieg>=1 && zasieg<=2){
aa=20+((zasieg-1)*3.5);
}
else if(zasieg>2 && zasieg<=3){
aa=23.5+((zasieg-2)*1.5);
}
else if(zasieg>3 && zasieg<=5){
aa=25+(zasieg-3);
}
else if(zasieg>5 && zasieg<=10){
aa=27+((zasieg-5)*(3/5));
}
else if(zasieg>10 && zasieg<=20){
aa=30+((zasieg-10)*(2.5/10));
}
else if(zasieg>20 && zasieg<=30){
aa=32.5+((zasieg-20)*(4/10));
}
else if(zasieg>30 && zasieg<=40){
aa=36.5+((zasieg-30)*(4.5/10));
}
else if(zasieg>40 && zasieg<=50){
aa=41+((zasieg-40)*(4.5/10));
}
else if(zasieg>50 && zasieg<=60){
aa=45.5+((zasieg-50)*(4.5/10));
}
else if(zasieg>60 && zasieg<=70){
aa=50+((zasieg-60)*(3.5/10));
}
else if(zasieg>70 && zasieg<=80){
aa=53.5+((zasieg-70)*(2.5/10));
}
else if(zasieg>80 && zasieg<=90){
aa=56+((zasieg-80)*(2.25/10));
}
else if(zasieg>90 && zasieg<=100){
aa=58.25+((zasieg-90)*(2/10));
}
else {
aa=-1;
}
return aa;
}
private double zasieg;
public double aa=0;
}
Np. w bloku else if(zasieg>5 && zasieg<=10) zwraca cały czas wartość 27.