java - Java 中的 "cannot find symbol"错误

标签 java

我是 Java 新手,正在尝试简单的示例来熟悉基础知识。这是一个检查用户指定的三个整数是否都相等的程序。

import java.lang.*;
import java.util.*;
public class CheckEqual{

    public static void main(String [] args){
        if (args.length != 5){
            System.out.println("Please check the number of your integers!");
            return;
        }
        try{
            int firstInteger = Integer.parseInt(args[2]);
            int secondInteger = Integer.parseInt(args[3]);
            int thirdInteger = Integer.parseInt(args[4]);
        }
        catch(NumberFormatException e){
            System.out.println("Make sure that all inputs are integers!");
            return;
        }
        if (firstInteger == secondInteger && secondInteger == thirdInteger){
            System.out.println("True");
            return;
        }
        else{
            System.out.println("False");
            return;
        }
    }

 }

在编译过程中,它在firstInteger、secondInteger和thirdInteger上给出了错误“找不到符号”。这是为什么,我该如何解决?

最佳答案

Java 对每个变量都使用作用域。基本上,如果您在 if block 中创建一个变量,如下所示:

if(statement){
    int x = 1;
}

x++;

x 变量仅存在于 if block 的范围内。之后就不存在了。这意味着 x++ 将产生错误,因为 x 在此范围内不存在。这同样适用于代码中的 try block 。 FirstInteger、SecondInteger 和 ThirdInteger 不存在于 try block 之外。您应该更改以下代码:

import java.lang.*;
import java.util.*;
public class CheckEqual{

    public static void main(String [] args){
        if (args.length != 5){
            System.out.println("Please check the number of your integers!");
            return;
        }
        try{
            int firstInteger = Integer.parseInt(args[2]);
            int secondInteger = Integer.parseInt(args[3]);
            int thirdInteger = Integer.parseInt(args[4]);

            if (firstInteger == secondInteger && secondInteger == thirdInteger){
                System.out.println("True");
                return;
            }
            else{
                System.out.println("False");
                return;
            }
        }
        catch(NumberFormatException e){
            System.out.println("Make sure that all inputs are integers!");
            return;
        }
    }
}

关于java - Java 中的 "cannot find symbol"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39929070/

相关文章:

java - 锁定获取顺序

java - setAuth 在 onReceivedHttpAuthRequest 中调用不在 STARTED 状态的 WebRequest

java - 线程 "main"java.lang.ArrayIndexOutOfBoundsException : 8 中的异常

java - 确定使用了哪个提交按钮?

java - 带索引的数组赋值仅适用于大括号

java - 将透明文本字段放在图像上

java - 如何获取 Android 中传入和传出彩信的总数?

java - 如何将 Struts2 datetimepicker 值转换为 SQL 日期时间,以便将其保存到 SQL 表中

java - java中锁机制的实现查询

java - 我可以为多个 Web 操作仅调用一次 PageFactory 实例吗?