我正在尝试创建一个程序,其中伪随机数生成器生成一个数字,然后将其传递给一个对象,然后该对象调用其他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.");
}
}
答案 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
似乎有不同的角色 - 提出随机数和绘图形状。我意识到这不是生产代码,但考虑给每个班级一个单一的责任永远不会太早。