2015-03-19 158 views
1

我似乎无法得到底部“我”链接到变量在for循环下面我出错了哪里?我曾试图对其进行编辑修改变量,把变量上面的for循环我得到的是错误无法解析为循环中的for循环变量

还我使用的Eclipse月神

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

    } 

回答

6

删除分号;for循环

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

,并在if声明

if (c==ch); 
     ^
+4

同样在这里:'if(c == ch);' – pzaenger 2015-03-19 03:34:18

+0

啊好赶上@pzaenger – Baby 2015-03-19 03:36:03

+0

谢谢非常简单的解决方案 – 2015-11-11 02:34:00

1

您的问题可以在原始代码的第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); 
    } 
} 

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

+0

非常感谢你apreciated – 2015-03-19 13:05:59