JAVA非法启动类型

我的节目:

public class m { public static void main (String[] args) { boolean bool = true; while(bool) { rand_number player_1 = new rand_number(); System.out.println("Player_1 guessed " + player_1.rand_n); rand_number player_2 = new rand_number(); System.out.println("Player_2 guessed " + player_2.rand_n); rand_number player_3 = new rand_number(); System.out.println("Player_3 guessed " + player_3.rand_n); if(player_1.guessed || player_2.guessed || player_3.guessed) { System.out.println("We have a winner"); bool = false; } } } } class rand_number { int rand_n = (int)(Math.random() * 10); if(rand_n == 2) { boolean guessed = true; } } 

我收到这个错误: m.java:31: illegal start of type 。 语法是绝对正确的,我已经检查了数百万次。 怎么了?

 class rand_number { //... if(rand_n == 2) { boolean guessed = true; } } 

您只能在类级别进行字段声明。 像这样的if语句需要在方法,构造函数或初始化块中。

您可以像这样消除if语句:

 boolean guessed = rand_n == 2; 

但我怀疑为什么你想要在创建时设置这个值,而不是响应某些用户操作。

你的语法是完全错误的。 rand_number不包含方法,但仍尝试执行条件。


如果你想做随机数,你应该尝试这样的Random类:

 Random random = new Random(); int numberToFind = random.nextInt(2); 

您应该看看Java命名约定 ,它有助于拥有任何Java开发人员可以在一秒钟内理解的干净代码。 例如,使用大写开始类名。