Java 开关导致方法变为非静态?if语句也是如此?

Java 开关导致方法变为非静态?if语句也是如此?,java,Java,是什么导致方法变为“非静态” 我一直在试着让这个掷硬币的方法起作用。可悲的是,几十年过去了(至少感觉上是这样),我所知道的是,如果(请随意更正)一个if语句/开关在一个方法中,它会使该方法成为非静态的。那么,我们如何避免这个错误呢。需要了解的重要信息:p1Choose开始时为真。我希望此方法返回true,如果此人赢得了掷硬币(如果p1Choose为true,则其玩家1,如果为false,则其玩家2) 我得到这样一个错误,即非静态方法不能被静态上下文引用您选错了树。有无static关键字是使方法静

是什么导致方法变为“非静态”

我一直在试着让这个掷硬币的方法起作用。可悲的是,几十年过去了(至少感觉上是这样),我所知道的是,如果(请随意更正)一个if语句/开关在一个方法中,它会使该方法成为非静态的。那么,我们如何避免这个错误呢。需要了解的重要信息:
p1Choose
开始时为真。我希望此方法返回true,如果此人赢得了掷硬币(如果
p1Choose
为true,则其玩家1,如果为false,则其玩家2)


我得到这样一个错误,即非静态方法不能被静态上下文引用

您选错了树。有无
static
关键字是使方法静态与否的唯一因素。

我不明白你为什么这样想。我在您的代码中没有看到任何可能迫使您这样思考的内容。
如果方法的签名中有静态修饰符,则该方法可以是静态的。除此之外,它不能是静态的。静态或非静态不取决于方法的内部结构。
但是,有一件事,您不能使用任何非静态方法或静态方法中的变量。这一部分可能会让你觉得很麻烦,因为你现在正在思考。使用if-else时,可以使用一些非静态变量,但使用switch时,可能不需要使用这些变量。

请您检查此部分。

我认为您误解了错误…

int toss=Random.nextInt(1);//还是这是随机造成的

nextInt()
不是
Random
上的静态方法。试试这个:

Random r = new Random();
int toss = r.nextInt(1);

那我该怎么办。。。把静态放在方法的顶端?这是一个不好的风吹没人好:你对我的答案的投票使我的声誉超过10000,现在我有了版主特权。几年后,历史学家们会回过头来感叹,如果他把自己的特权用于正义,而不是邪恶…@OladamOladam——是的,在函数声明中:
public static boolean cointost()
祝“版主特权”获得日快乐!在班上的第一名,我构建了一个名为“Random”的随机变量。这不是和Random r=newrandom()一样吗;
Random r = new Random();
int toss = r.nextInt(1);