日期:2014-05-17  浏览次数:21254 次

c#你面有没有短路与和短路或呢!!
java中有&和&&,|和||,那么在c#中是不是一样的呢??

------解决方案--------------------
有 一样
------解决方案--------------------
"Java里的短路与非短路运算符" 与 "C#里的短路与非短路运算符" 是一样的.

/* 
 * 短路与非短路运算符测试
 * 
 * false || false --> false
 * false || true --> true
 * true || false --> true
 * true || true --> true
 * 
 * false && false --> false
 * false && true --> false
 * true && false --> false
 * true && true --> true
*/

C# code

class A
{
    public static void Main(string[] args)
    {
    int x = 0;
        Console.WriteLine(1 == x && 1 == 1/x); // 把&&换成&则抛异常
    }
}

------解决方案--------------------
有的,下面输出10,因为虽然第一个a < b不成立,但因为使用&,所以(b = 10) > a依然会执行
static void Main(string[] args)
{
int a=9;
int b=4;
if ((a < b) & ((b = 10) > a))
{

}
Console.WriteLine(b);
}

------解决方案--------------------
实际上我们常用的&&、||叫短路与和短路或,& |在对bool型运算时,叫非短路与,非短路或