1

我正在尝试创建一个程序,其中伪随机数生成器生成一个数字,然后将其传递给一个对象,然后该对象在其他 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."); 

  }


}
4

1 回答 1

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似乎有不同的角色——想出一个随机数和绘制形状。我意识到这不是生产代码,但现在考虑赋予每个类一个单一的职责永远不会太早。

于 2013-10-08T05:56:52.033 回答