Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java程序中可视化变量的范围_Java - Fatal编程技术网

如何在Java程序中可视化变量的范围

如何在Java程序中可视化变量的范围,java,Java,我试图可视化给定Java程序中变量的范围。如何命名“{”“}”之间的每个作用域?i、 我想通过查看哪一个程序员可以很容易地知道变量或对象的范围来显示树结构中的变量或对象。 我已经编写了一个程序来计算“{”“}”,以及条件语句或循环语句是否发生在一行上,而没有任何“{”“}”。 我的问题是!是否已经有其他的工具或概念来做同样的事情,或者我们已经自己写了。对不起,我不知道怎么说得更清楚 如何命名“{”“}”之间的每个作用域 不清楚为什么需要命名块。大多数IDE不会这样做:它们可能会使用高亮显示来显示

我试图可视化给定Java程序中变量的范围。如何命名“{”“}”之间的每个作用域?i、 我想通过查看哪一个程序员可以很容易地知道变量或对象的范围来显示树结构中的变量或对象。 我已经编写了一个程序来计算“{”“}”,以及条件语句或循环语句是否发生在一行上,而没有任何“{”“}”。 我的问题是!是否已经有其他的工具或概念来做同样的事情,或者我们已经自己写了。对不起,我不知道怎么说得更清楚

如何命名“{”“}”之间的每个作用域

不清楚为什么需要命名块。大多数IDE不会这样做:它们可能会使用高亮显示来显示哪个大括号与哪个大括号匹配。我想你的意思是你希望识别每一对匹配的大括号,但实际上你不需要命名它们

无论哪种方式,您都必须解析源代码以正确匹配大括号。请注意,在不解析代码的情况下仅计算大括号是不够的,因为例如注释和字符串中的大括号不是开始或结束作用域

如果条件语句或循环语句只出现一行,并且没有“{”“}”,该怎么办

在条件语句体(或循环语句体)中创建变量是不合法的,除非该体是块(即被大括号包围)。这是因为
块的定义是:

BlockStatement:
    LocalVariableDeclarationStatement
    ClassDeclaration
    Statement
如果陈述
定义如下:

IfThenStatement:
    if ( Expression ) Statement

语句
的定义不包括
LocalVariableDeclarationStatement
(块内除外)。

您可以根据需要命名作用域。如果要在代码中执行此操作,可以向其添加标签

OUTER: {
    // code
    INNER: {
        if(flag)
           break OUTER;
    }
    // code
}

您不能在独立语句中声明变量(如果没有
{
}),唯一的例外是for/for每个声明变量的循环。

不确定您的问题是什么。为什么作用域需要一个名称?除了在循环声明中,例如(inti=0,i<9;i++)System.out.println(i)