gpt4 book ai didi

java - 为什么我在尝试使用局部变量时收到 "cannot find symbol"错误?

转载 作者:行者123 更新时间:2023-12-01 07:25:18 24 4
gpt4 key购买 nike

这是我的代码。它应该接受两个字符串并逐个字符地比较它们的差异。

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));
}
}
}
}

当我尝试编译时出现此错误:

 ----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.

最佳答案

您的 length 变量在 ifelse 的每种情况下都被声明和初始化,然后在 block 结束时因超出范围而立即被丢弃.

if 之前声明它并在每种情况下初始化它,因此它仍然在 for 循环的范围内。

int length;
if(first.length()>second.length()){
length = first.length();
}else{
length = second.length();
}

关于java - 为什么我在尝试使用局部变量时收到 "cannot find symbol"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26069465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com