你猜猜这段程序那个信息框会显示出来??
注意:这是C#.net的代码! 与Java的结果不一样.
int n=3;
if (true || (++n) >= 3)
{
}
if (n == 4) System.Windows.Forms.MessageBox.Show("第一次判断语句成立");
if (true | (++n) >= 3)
{
}
if (n == 4) System.Windows.Forms.MessageBox.Show("第二次判断语句成立");
if (false || (++n) >= 3)
{
}
if (n == 5) System.Windows.Forms.MessageBox.Show("第三次判断语句成立");
if (false | (++n) >= 3)
{
}
if (n == 5) System.Windows.Forms.MessageBox.Show("第四次判断语句成立");
if (false && (++n) >= 3)
{
}
if (n == 6) System.Windows.Forms.MessageBox.Show("第五次判断语句成立");
if (false & (++n) >= 3)
{
}
if (n == 6 ) System.Windows.Forms.MessageBox.Show("第六次判断语句成立");
if (true & (++n) >= 3)
{
}
if (n == 8) System.Windows.Forms.MessageBox.Show("第七次判断语句成立");
结果是23567.
^_^,没有想到吧!
||如果左值为true,右边的等式就不会被执行,但是|即使左值为true,也会去判断右边的等式。
如果在Java里面,&&和&也会如此,但.net与Java却不一样,.net不管&&的左侧等式是否为false,都会执行右侧。而Java就 只有 2367。
&& 和||的运算效率会比&和|高!