1、C# 布尔值
通常,在编程中,将需要一个只能具有两个值之一的数据类型,表示逻辑判断条件的真假。
为此,C#具有bool
数据类型,该数据类型可以是值true
或false
。bool
类型的默认值为 false
。
2、bool变量声明
布尔类型使用bool
关键字声明,并且只能是true
或false
:
例如,
bool iscjavapyFun = true; bool isFishTasty = false; Console.WriteLine(iscjavapyFun); // 输出 true Console.WriteLine(isFishTasty); // 输出 false
3、布尔表达式
布尔表达式是返回布尔值的C# 表达式:true
或false
。
可以使用比较运算符,例如,大于(>
)运算符来查找表达式(或变量)是否为真:
例如,
int x = 10; int y = 9; Console.WriteLine(x > y); // 返回true,因为10比9大
例如,
Console.WriteLine(10 > 9); // 返回true,因为10比9大
在下面的示例中,我们使用等于(==
)运算符来计算表达式:
例如,
int x = 10; Console.WriteLine(x == 10); // 返回true,因为x的值等于10
例如,
Console.WriteLine(10 == 15); // 返回false,因为10不等于15
表达式的布尔值是所有C#比较和条件的基础。
4、bool与Boolean的区别
1) bool是基本数据类型,Boolean是它的封装类,和其他类一样,有属性有方法,可以new,例如,
Boolean flag = new Boolean(); // boolean 则不能
2) Boolean 是bool 的实例化对象类,例如,
bool b1 = true ; //或者 Boolean b2 = true ;
5、布尔运算
布尔运算符可以用于对 bool
值进行逻辑运算,包括 &&
(逻辑与)、||
(逻辑或)和!
(逻辑非)。
bool a = true; bool b = false; Console.WriteLine("a && b: " + (a && b)); // false Console.WriteLine("a || b: " + (a || b)); // true Console.WriteLine("!a: " + !a); // false Console.WriteLine("!b: " + !b); // true
6、布尔值在条件语句中的应用
布尔值最常用于 if-else
语句和循环中。
1)在 if-else
语句中使用布尔值
bool isAdmin = true; if (isAdmin) { Console.WriteLine("Welcome, Admin!"); } else { Console.WriteLine("Access Denied."); }
2)布尔值在 while
循环中
bool keepRunning = true; int count = 0; while (keepRunning) { Console.WriteLine("Running... Count: " + count); count++; if (count >= 3) { keepRunning = false; // 退出循环 } }
7、布尔值的转换
C# 不可以直接将整数转换为布尔值,但可以使用比较运算符或 Convert.ToBoolean()
进行转换。
int number = 10; bool isPositive = (number > 0); // 使用比较运算符 Console.WriteLine("Is number positive? " + isPositive); bool fromInt = Convert.ToBoolean(1); // 任何非零数都转换为 true bool fromZero = Convert.ToBoolean(0); // 0 转换为 false Console.WriteLine("Convert.ToBoolean(1): " + fromInt); Console.WriteLine("Convert.ToBoolean(0): " + fromZero);
8、布尔值的位运算(&
和 |
)
与 &&
和 ||
不同,&
和 |
是 位运算符,不会进行短路计算。&&
和 ||
短路计算,如果左侧已确定结果,则右侧不会被计算。&
和 |
不会短路,无论左侧结果如何,右侧都会被计算。
bool a = false; bool b = true; Console.WriteLine("a & b: " + (a & b)); // False Console.WriteLine("a | b: " + (a | b)); // True