use*_*920 10 java if-statement boolean
private String getWhoozitYs(){
StringBuffer sb = new StringBuffer();
boolean stop = generator.nextBoolean();
if(stop = true)
{
sb.append("y");
getWhoozitYs();
}
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)
这是我在编程课程中所做项目的一大块代码.我遇到的问题是,在声明布尔停止并尝试为其分配随机生成的布尔值之后,我不能在if语句中使用它来确定是否应该向StringBuffer添加更多y.我在构造函数中有Random生成器,因此该部分不是问题.我假设因为我在if语句之外声明了布尔值,我可以在里面使用它,但似乎并非如此.真正的问题是如何在if语句中使用随机确定的布尔值.
Mar*_*oun 22
if(stop = true)应该是if(stop == true),或简单(更好!)if(stop).
这实际上是一个很好的机会,可以看到为什么总是使用,if(something)如果你想看看它是否true而不是写if(something == true)(坏风格!).
通过这样做stop = true,那么你分配true到stop不比较.
那么为什么if声明下面的代码会执行呢?
在运行时,赋值表达式的结果是赋值发生后变量的值.赋值表达式的结果本身不是变量.
因为你写了stop = true,那你就满足了if条件.