无法在循环中的 for 循环中解析为变量

cannot be resolved to a variable in a for loop in a loop

我似乎无法将底部 "i" 到 link 到下面的 for 循环中的变量,我哪里出错了?我试图编辑它更改变量并将变量放在for循环之上我得到的只是错误

我也在用 eclipse luna

import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class AssignmentProgramming {

public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    Scanner sc = new Scanner(System.in);

    System.out.println("Please enter a string");


    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String data = reader.readLine();


    char ch =(char) System.in.read();

    int letters=0;

    for(int i=0; i<data.length(); i++);
    {
        char c=data.charAt(i);//<-- This i here
        if (c==ch);
        {letters++;
    }



      }
    System.out.println(letters);
    }

    }

删除 for 循环末尾的分号 ;

for(int i=0; i<data.length(); i++);
                                  ^

并在if声明

if (c==ch);
          ^

你的问题在原代码第22行。在多个地方,您不小心在循环体前添加了一个分号,从而遗漏了变量的声明。我附上了您的代码的重构和更正编辑:

import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class AssignmentProgramming {

    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);

        System.out.println("Please enter a string");

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String data = reader.readLine();

        char ch =(char) System.in.read();

        int letters=0;

        for(int i=0; i<data.length(); i++) {
            char c=data.charAt(i);//<-- This i here
            if (c==ch)
                letters++;
        }
        System.out.println(letters);
    }
}

希望对你有所帮助,祝你好运。