关于逻辑表达式的“短路效应”

眨眼间大三了,压力倍感而至。要说基础理论,大一大二也学得差不多了,大三也正是该磨刀的时候了。

但是由于自己刚进大学比较贪玩,导致基础知识不是很扎实,学的范围也不是很广。

很惭愧,到了大三,我也只会C++和JAVA,而且钻研的也不是很深。没办法,现在就开始准备把以前该学的

东西弥补上。

我写的博客其实很肤浅,我之所以写博客,是希望通过这种方式提高自己的计算机水平和表达能力。如果有错误

希望大家能够不吝赐教。

今天我想说的是逻辑表达式的“短路效应”

首先,大家应该都比较熟悉这两个符号: && 和 ||,它们都是二元逻辑运算符

一个是逻辑与,另一个是逻辑或。其实用法都很简单,而且用的频率也比较高。

“短路效应”就是说逻辑符号左右两边的表达式在一种情况下,左边的真值一旦确定,另一边的表达式就不会执行。

下面用C#演示一下:


using System;

namespace test
{

    class Program
    {
        static private bool Print1(string msg)
        {
            Console.WriteLine(msg);
            return true;
        }
        static private bool Print2(string msg)
        {
            Console.WriteLine(msg);
            return false;
        }
        static void Main()
        {
            //测试&&
            if (false && Print1("1")) ;
            if (true && Print1("2")) ;

            //测试||
            if (false || Print2("3")) ;
            if (true || Print2("4")) ;
        }

    }
}

执行结果:




对于&&符号,如果左边表达式为false,则右边表达式不会执行,即不会执行Print1(),如果左边表达式为true,则右边表达式会执行,即会执行Print1(),输出2

对于||符号,如果左边为true,则右边表达式不会执行,即不会执行Print2(),如果左边表达式为false,则右边表达式会执行,即执行Print2(),输出4。


意义:

如果能够预知逻辑表达式(除了!)左边表达式的真值,恰当安排两边的顺序,可以在一定程度上提高程序的执行效率!



你可能感兴趣的:(C#,string,测试,class,java,c#,c)