Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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 错误:无法从for循环中找到符号_Java - Fatal编程技术网

Java 错误:无法从for循环中找到符号

Java 错误:无法从for循环中找到符号,java,Java,因此,我的代码试图找出一个字符串是否与另一个目标字符串(目标已定义)相似。它根据两个字符串中有多少字母相似来评分。然而,在我的for循环中,我得到了一个用于定义tChar的m的找不到符号错误,但是它被用来定义iChar。。。我很困惑。有更好的方法吗 public int score(String input){ int score; char iChar, tChar; for (int m=0;m<input.length();++m) iChar

因此,我的代码试图找出一个字符串是否与另一个目标字符串(目标已定义)相似。它根据两个字符串中有多少字母相似来评分。然而,在我的for循环中,我得到了一个用于定义tChar的m的找不到符号错误,但是它被用来定义iChar。。。我很困惑。有更好的方法吗

public int score(String input){
    int score;
    char iChar, tChar;
    for (int m=0;m<input.length();++m)
        iChar = input.charAt(m);
        tChar = target.charAt(m);
        if (iChar == tChar)
            score = score + 1;
        else
            score = score;
    return score;
}
公共整数分数(字符串输入){
智力得分;
查伊查尔,特查尔;

for(int m=0;m您需要在for循环周围放置大括号。此时for循环正在反复执行iChar行,然后当它退出并到达tChar行时,变量m超出范围,因此无法找到

修复后的代码如下所示

public int score(String input) {
    int score = 0; //i know java instantiates variables for you, but if you do it explicitly, it serves to document your code.
    char iChar, tChar;
    for (int m = 0; m < input.length(); m++) {
        iChar = input.charAt(m);
        tChar = target.charAt(m);
        if (iChar == tChar) score++; //abbreviated and else clause removed, as it was doing nothing.
    }
    return score;
}
公共整数分数(字符串输入){
int score=0;//我知道java会为您实例化变量,但如果您显式地这样做,它将用于记录代码。
查伊查尔,特查尔;
对于(int m=0;m
我没有想到……谢谢!
for (int m=0;m<input.length();++m)  // Now m is block scoped
{
        iChar = input.charAt(m);
        tChar = target.charAt(m);
        if (iChar == tChar)
            score = score + 1;
        else
            score = score;   // I don't see any use of else at all
}
public int score(String input) {
    int score = 0; //i know java instantiates variables for you, but if you do it explicitly, it serves to document your code.
    char iChar, tChar;
    for (int m = 0; m < input.length(); m++) {
        iChar = input.charAt(m);
        tChar = target.charAt(m);
        if (iChar == tChar) score++; //abbreviated and else clause removed, as it was doing nothing.
    }
    return score;
}