该程序在BlueJ中,在if else中没有看到任何情况并且直接转到最后的else语句?

时间:2015-10-15 17:32:48

标签: string if-statement bluej

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);
    }
}

在此代码中,其输出为"请检查拼写错误"

1 个答案:

答案 0 :(得分:0)

永远不会分配

#include <boost/range.hpp> int foo(int x) { return x+1; } int main(int argc, char* argv[]) { return foo(argc); } ,因为您的整个逻辑已放入func块。

catch

仅当输入解析失败时才会运行。

简单的调试(甚至是println)应该可以让您了解正在进行的操作。