2016-08-15 2 views
1

숫자의 백분율을 If/Else 문으로 작동하는 숫자 제한에 할당하려고 시도했지만 변환하려고 시도했습니다. 부울 스위치 나는 "진술이 아니다"라는 오류를받습니다.숫자 제한이 낮은, 중간 및 높음 인 스위치에서 부울을 시도하십시오.

내가 여기서 잘못하고 있다는 것을 알 수 없습니다.

public static boolean taxRate(double rate) 
{ 
    final double LOW_LIM = 15000; 
    final double LOW_RATE = 0.25; 
    final double MEDIUM_LIM = 49001; 
    final double MEDIUM_RATE = 0.5; 
    final double HIGH_LIM = 49002; 
    final double HIGH_RATE = 0.75; 

    boolean taxRate;    
    switch(taxlimit) 
    { 
    case(LOW_LIM): 
     yearlyIncome <= LOW_LIM; 
     taxRate = LOW_RATE; 
     break; 
    case(MEDIUM_LIM):  
     yearlyIncome <= yearlyIncome >= MEDIUM_LIM && yearlyIncome < HIGH_LIM; 
     taxRate = MEDIUM_RATE; 
     break; 
    case(HIGH_LIM):  
     yearlyIncome <= HIGH_LIM; 
     taxRate = HIGH_RATE; 
    } 
    return taxRate(); 
} 

답변

0

switch 문은 상수와 함께 작동하며 동등성 만 검사합니다. 이해야 할 일을 말하지 않는다 - 당신이

yearlyIncome <= yearlyIncome >= MEDIUM_LIM && yearlyIncome < HIGH_LIM; 

은 문이 아니라 표현이 당신의 IF를이

if (var == const1) .....; 
else if (var == const2) ....; 
else if (var == const3) ....; 
else .....; 

처럼 보이는 경우에만 스위치를 IF/ELSE replase 수 있습니다. 성명서는해야 할 일을 반드시 말해야합니다.

+0

좋은 조언. 코드를 다시 작성하고 다시 시도하겠습니다. –