5-2. 逻辑表达式和短路问题

  1. 与:&&(左右两个表达式均为真才表示真)

  2. 或:||(左右两个表达式至少一个为真才表示真)

  3. 非:!(相当于取反,对真做非运算为假,对假做非运算为真)

  4. int m = 20;
      	int n = 30;
      
      	if (m == 20 && n == 30)
      	{
      		cout << "m == 10 , n == 30" << endl;
      	}
      	if (m == 20 || n == 40)
      	{
      		cout << "两个表达式至少一个为真" << endl;
      	}
      	if (!(m < 20))
      	{
      		cout << "!(m < 20)" << endl;
      	}
      	/*结果:
      
      	m == 10 , n == 30
      	两个表达式至少一个为真
      	!(m < 20)
      	*/
    
  5. 短路问题

  • 主要是针对逻辑与和逻辑或
  • 对于逻辑与&&:如果第一个表达式检测到为假,那么剩下的表达式不再进行检查。
  • 对于逻辑或||:如果第一个表达式检测到为真,那么剩下的表达式不再进行检查。
  1. 通过短路问题来判断类中的函数是否被初始化、是否为空

    MyClass *myClass;
    ...
    //myClass.process()
    if(myClass != NULL && myClass.process())
    {
        ...
    }
    

发布了56 篇原创文章 · 获赞 51 · 访问量 6513

猜你喜欢

转载自blog.csdn.net/qq_43367829/article/details/105423007