2015-10-15 1 views
1
public class trigo { 

    public double conversion(String a) { 

     String func="",f=a,sin="sin",cos="cos",tan="tan",cosec="cosec",cot="cot",sec="sec"; 
     f=f.trim(); 
     double p=0,z=0; 
     try { 
      p=Double.valueOf(f); 
     } catch(Exception e) { 
      func=f.substring(0,3); 
      f=f.substring(3,f.length()); 

      try { 
       p=Double.valueOf(f); 
      } catch(Exception d) { 
       func=func.concat("ec"); 
       f=f.substring(2,f.length()); 
       p=Double.valueOf(f); 
      } 
     }'problem starts here' 

     if(func=="") 
      z=p; 
     else if(func=="sin") 
      z=Math.sin(p); 
     else if(func=="cos") 
      z=Math.cos(p); 
     else if(func.=="tan") 
      z=Math.tan(p); 
     else if(func=="cosec") 
      z=1/Math.sin(p); 
     else if(func=="sec") 
      z=1/Math.cos(p); 
     else if(func=="cot") 
      z=1/Math.tan(p); 
     else 
      System.out.println("please check for spelling mistake"); 
     'ends here' 
     System.out.print(z); 
    } 
} 

В этом коде его подача выходного сигнала, как «пожалуйста, проверьте орфографическую ошибку»Программа находится в BlueJ, она не видит ни одного случая в if else и напрямую переходит к заявлению последнего else?

+1

что такое ввод? Дайте значения a, по которым происходит ошибка. – Sighil

+0

На первой строке запускается задача проверить, какие переменные 'func, f, p и z' равны. Это даст более полное представление о том, что происходит. –

+0

на любом входе, таком как sin45, cos30, tan60, cosec15. –

ответ

0

func никогда не назначается, так как вся ваша логика была введена в catch блок.

catch(Exception e) { 
      func=f.substring(0,3); 
      f=f.substring(3,f.length()); 

      try { 
       p=Double.valueOf(f); 
      } catch(Exception d) { 
       func=func.concat("ec"); 
       f=f.substring(2,f.length()); 
       p=Double.valueOf(f); 
      } 
     } 

Он будет работать только в том случае, если на входе произошел сбой синтаксического анализа.

Простая отладка (или даже println) должна дать вам представление о том, что происходит.

+0

, что действительно помогли –