我是 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/