一个简单的java基础问题

LittleSock 发布于 2017/08/10 15:10
阅读 393
收藏 0

public class TestArry2{
    int i;
    /*TestArry2(int i){
        i = this.i;
    }*/
    public static void main(String[] args){
        /*int s[] = {1,2,3,4,5,7,9,8,6,8}; 
        for(int i = 0;i<s.length;i++){
            System.out.print(s.length);
        }*/
        /*for(int i = 0;i<args.length;i++){
            System.out.println(args[i]);
        }*/
        /*TestArry2 a = new TestArry2(1);
        TestArry2 b = new TestArry2(1);
        System.out.println(a.equals(b));*/
        if(args.length<2){
            System.out.println("Usage: java Test \"n1\" \"op\" \"n2\"");
            System.exit(-1);
        }
        try {
        double d1 = Double.parseDouble(args[0]);
        double d2 = Double.parseDouble(args[2]);
    }catch (NumberFormatException e){
        System.out.println("要写数字啊!");
        e.printStackTrace();
    } 
        double d = 0;
        if(args[1].equals("+")) d = d1+d2;
        else if(args[1].equals("-")) d = d1-d2;
        else if(args[1].equals("X")) d = d1*d2;
        else if(args[1].equals("/")) d = d1/d2;
        else{
            System.out.println("Error operator");
            System.exit(-1);
        }
        System.out.println(d);
    }
}

 

 

 

 

运行之后就出问题了

D:\java\TestArry>javac TestArry2.java
TestArry2.java:29: cannot resolve symbol
symbol  : variable d1
location: class TestArry2
                if(args[1].equals("+")) d = d1+d2;
                                            ^
TestArry2.java:29: cannot resolve symbol
symbol  : variable d2
location: class TestArry2
                if(args[1].equals("+")) d = d1+d2;
                                               ^


The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError

上面那副图不清楚的话就看这个吧

请各路大神多多指教   多谢多谢

 

加载中
0
DeMoNHaDeS
DeMoNHaDeS

报错信息委d1,d2未声明。

你的d1,d2是在try-cache块内声明的,外面引用不到。

L
LittleSock
感谢您解答。
0
北极心
北极心

看样子是才刚学,以后用IDE就可以避免了

0
mskf
mskf

javac 指令产生的属于编译期错误,用eclipse或者idea这种ide可以检查出的

0
tcxu
tcxu

翻译你运行之后出现的错误信息如下:

D:\java\TestArry>javac TestArry2.java
TestArry2.java:29: cannot resolve symbol  java代码TestArry2.java 的29行符号无法识别
symbol  : variable d1 符号:变量 d1
location: class TestArry2 所在位置: TestArry2 类
                if(args[1].equals("+")) d = d1+d2;
                                            ^
TestArry2.java:29: cannot resolve symbol java代码TestArry2.java 的29行符号无法识别
symbol  : variable d2 符号:变量 d2
location: class TestArry2 所在位置: TestArry2 类
                if(args[1].equals("+")) d = d1+d2;
                                               ^
The system is out of resources. 超出系统资源范围 
Consult the following stack trace for details. 查阅下列 堆栈轨迹,以了解详情。
java.lang.OutOfMemoryError

0
微笑兔
微笑兔

培训公司的吧 哪一家?

我说芒果儿
我说芒果儿
,,,
0
tcxu
tcxu

不论用 DOS 窗口的命令:javac, 还是 eclipse 等编程软件,首先必须逐字逐句地明白给出的错误信息, 才好知道代码中的错误在哪里。我只是将这里的英文信息翻译成中文,目的是帮助不懂英文的程序员明白信息, 以便找出当前的错误。理解错误信息,在编程实践中,是很重要的。

返回顶部
顶部