Cod*_*tic 3 c# java if-statement
让我们说如果有一个布尔变量状态.假设状态值为false.
我想知道它们之间有什么区别
if ( status = true )
{
//block of code
}
if ( status == true )
{
//block of code
}
Run Code Online (Sandbox Code Playgroud)
我试图通过编写一个示例程序来理解它,第一个if块中的代码被执行,无论值状态是什么(true或false).
对于其他原始类型,如果我只使用一个"="if和为什么它不会在布尔类型的情况下抛出错误,则系统会抛出编译时错误.谢谢.
das*_*ght 21
第一个不是比较,而是一个任务.它编译的原因是它分配了一个布尔值,因此赋值的结果也是一个布尔值.
第一个语句分配status一个新值,并if根据该新值执行(true在您的情况下).第二个语句将当前值status与右侧的值进行比较,并对比较结果起作用.
请注意,是不是一个好主意来比较boolean在Java或boolC#中到true或false:你可以使用if (status),而不是if (status == true)和if (!status)代替if (status == false).然而,这并不适用于可空类型的C#,所以比较bool?于true或false往往是一个好主意.
ass*_*ias 10
if ( status = true )永远都是真的,因为你先分配true给status.另一方面,if ( status == true )只有这status是真的.
写它并避免拼写错误或混淆的最好方法是:
if (status) { }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
807 次 |
| 最近记录: |