此处不允许声明 JAVA 变量

新手上路,请多包涵

我收到错误消息“此处不允许声明变量”,我不知道为什么,我是 Java 新手,找不到答案:/ 正如它所说,我不能在“if”中创建“int”,但是有没有办法创建它?

 import java.io.PrintWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;import java.util.Scanner;
 public class test{
  public static void main(String[] args) throws FileNotFoundException{
    File plik = new File("test.txt");
    PrintWriter saver = new PrintWriter("test.txt");

     int score = 0;
     System.out.println("Q: What's bigger");
     System.out.println("A: Dog B: Ant");
     Scanner odp = new Scanner(System.in);
     string odpo = odp.nextLine();

     if(odpo.equals("a"))
        int score = 1;
     else
         System.out.println("Wrong answer");

  }
}

原文由 TheXDX 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

string 必须更改为 String

通过编写 int score 你试图声明一个已经存在的新变量,你之前已经声明过。只需删除 int 部分,您将获得所需的分配。

原文由 Luigi Cortese 发布,翻译遵循 CC BY-SA 3.0 许可协议

根据 Java 规范,您不能在没有作用域时声明局部变量。在 if 中声明 int score = 1 时,没有作用域。 http://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html

局部变量,以下之一

*在块中声明的局部变量

*在for语句中声明的局部变量

此外,您已经在上面声明了一个名为 score 的变量。即使你删除了那个声明,你也会因为上述原因得到错误。

原文由 barunsthakur 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题