切换语句 - 类型的非法启动,预期的标识符和孤立的情况?

时间:2013-10-08 05:55:01

标签: java identifier

我正在尝试创建一个程序,其中伪随机数生成器生成一个数字,然后将其传递给一个对象,然后该对象调用其他Java文件中的不同方法。我收到的错误如“

非法开始类型,预计在第11行 switch(randNumber){

第12行的孤立案例: 情况1;

我尝试删除case和1之间的空格,case和2,case和3,但是,它返回一个孤立的默认错误。

有人能说出什么可能是错的吗? random.drawHouse()和random.drawSquare()语句都调用另外两个源代码。我还没有为random.drawCircle编写SC,我真的想在此之前解决其他问题。

import java.util.Random; 
public class RandomFunTester
{ 

  private RandomFunTester random; 

  RandomFunTester random = new RandomFunTester(); 

  int randNumber = random.nextInt(2) + 1; 

  switch (randNumber) {
    case 1: 
      random.drawHouse(); 
      break; 
    case 2: 
      random.drawSquare(); 
      break; 
    case 3: 
      random.drawCircles(); 
      break; 
    default: 
      System.out.println("The random number generated is not between the values of 1 and 3."); 

  }


}

1 个答案:

答案 0 :(得分:3)

  

有人可以提出可能出错的建议吗?

您已在类声明的中间放置了一个switch语句。像这样的语句必须在方法或构造函数中。你没有在这里给出太多的背景,但你可能想要这样的东西:

class ShapeDrawer {
    private RandomFunTester random = new RandomFunTester(); 

    void drawRandomShape() {
        int randNumber = random.nextInt(2) + 1; 

        switch (randNumber) {
          case 1: 
            random.drawHouse(); 
            break; 
          case 2: 
            random.drawSquare(); 
            break; 
          case 3: 
            random.drawCircles(); 
            break; 
          default: 
            System.out.println("The random number generated is not "
                               + "between the values of 1 and 3."); 
        }
    }
}

请注意,您永远不会使用此代码绘制圆圈,假设RandomFunTester.nextInt()Random.nextInt()相似 - 我期望 random.nextInt(2)返回0或者1。

此外,RandomFunTester似乎有不同的角色 - 提出随机数和绘图形状。我意识到这不是生产代码,但考虑给每个班级一个单一的责任永远不会太早。