C# 中 | 和 || 运算符有什么区别?
|| 称为**逻辑或**运算符,而 | 称为**按位逻辑或**运算符,但它们之间最基本的区别在于执行方式。|| 和 | 的语法如下所示:
- bool_exp1 || bool_exp2
- bool_exp1 | bool_exp2
- 现在,1 和 2 的语法看起来很相似,但它们的执行方式完全不同。
- 在第一个语句中,首先执行 bool_exp1,然后根据该表达式的结果决定是否执行另一个语句。
- 如果它是真,则或运算结果为真,因此执行另一个语句毫无意义。
- 只有当 bool_exp1 执行后返回假时,才会执行 bool_exp2 语句。
- 它也称为短路运算符,因为它根据第一个表达式的结果来“短路”(语句)。
- 现在,对于 |,情况有所不同。编译器将执行这两个语句,换句话说,无论一个语句的结果如何,都会执行这两个语句。
- 这是一种低效的做法,因为如果一个语句为真,则执行另一个语句毫无意义,因为或运算的结果仅对评估为“假”的结果有效,而这只有当两个语句都为假时才有可能。
逻辑或
示例
using System;
namespace DemoApplication{
public class Program{
static void Main(string[] args){
if(Condition1() || Condition2()){
Console.WriteLine("Logical OR If Condition Executed");
}
Console.ReadLine();
}
static bool Condition1(){
Console.WriteLine("Condition 1 executed");
return true;
}
static bool Condition2(){
Console.WriteLine("Condition 2 executed");
return true;
}
}
}输出
Condition 1 executed Logical OR If Condition Executed
按位逻辑或
示例
using System;
namespace DemoApplication{
public class Program{
static void Main(string[] args){
if(Condition1() | Condition2()){
Console.WriteLine("Logical OR If Condition Executed");
}
Console.ReadLine();
}
static bool Condition1(){
Console.WriteLine("Condition 1 executed");
return true;
}
static bool Condition2(){
Console.WriteLine("Condition 2 executed");
return true;
}
}
}输出
Condition 1 executed Condition 2 executed Logical OR If Condition Executed
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP