Snu*_*ber 0 java variables compiler-errors
这是我的代码.它应该采用两个字符串并逐个字符地比较它们的差异.
import java.util.Scanner;
public class Positions {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String first = scan.next();
String second = scan.next();
if(first.length()>second.length()){
int length = first.length();
}else{
int length = second.length();
}
for(int i=0; i<length; i++){
if(first.charAt(i)!=second.charAt(i)){
System.out.print(i+" "+first.charAt(i)+" "+second.charAt(i));
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试编译时收到此错误:
----jGRASP exec: javac -g Positions.java
Positions.java:12: error: cannot find symbol
for(int i=0; i < length; i++){
^
symbol: variable length
location: class Positions
1 error
----jGRASP wedge: exit code for process is 1.
----jGRASP: operation complete.
Run Code Online (Sandbox Code Playgroud)
您的length
变量声明并且在每一种情况下初始化if
并else
然后立即丢弃超出范围时的块的端部.
if
在每种情况下在它之前声明并初始化它,因此它仍然在for
进一步向下循环的范围内.
int length;
if(first.length()>second.length()){
length = first.length();
}else{
length = second.length();
}
Run Code Online (Sandbox Code Playgroud)