Java 有一种表示逻辑值的简单类型,称为布尔型。它的值只能是真或假这两个值中的一个。它是所有的诸如a下面的程序说明了布尔类型的使用:
// Demonstrate boolean values. class BoolTest { public static void main(String args[]) { boolean b; b = false; System.out.println("b is " + b); b = true; System.out.println("b is " + b); // a boolean value can control the if statement if(b) System.out.println("This is executed."); b = false; if(b) System.out.println("This is not executed."); // outcome of a relational operator is a boolean value System.out.println("10 > 9 is " + (10 > 9)); } }
这个程序的运行结果如下所示:
b is false b is true This is executed. 10 > 9 is true
关于这个程序有3件有趣的事情要注意。首先,你已经看到,当用方法println ( ) 输出布尔的值时,显示的是“true ”或“false”。第二,布尔变量的值本身就足以用来控制if语句。没有必要将if语句写成像下面这样:
if(b == true) ...
第三,关系运算符(例如<)的结果是布尔值。这就是为什么表达式10>9 的显示值是“true”。此外,在表达式10>9 的两边额外的加上括号是因为加号“+”运算符比运算符“>”的优先级要高。
JAVA布尔类型进行逻辑运算和按位运算的区别
从结果上,2种运算结果都是一样,但逻辑运算会有“短路”现象,按位的没有,而按位又比逻辑运算多了“异或”功能。
短路现象
class br { static boolean f1() { return false; } static boolean f2() { return true; } static boolean f3() { return true; } } boolean f_1 = br.f1()&&br.f2()&&br.f3();
结果为false,当因为f1()就为false,那么后面的&&运算不用进行都知道结果了,JAVA就会发生“短路”对后面的运算乎略,性能提高。
boolean f_2 = br.f2()||br.f1()||br.f3();
结果true,同样f2()为true,后面一样不用再运算了。
好像很方便又高效,但还是有缺点。
boolean f_3 = br.f2()||br.f3()&&br.f1();
结果就变成true,正确应该是false,这就是“短路”造成的错误了,想获得正确的答案就需要加括号:
f_3=( br.f2()||br.f3())&&br.f1();
按位运算提供逻辑没有的异或功能:
boolean f = true^true;
结果f = false;
问题内容: 尝试按照Apple文档(和教程化的)创建Launch Helper时,我似乎遇到了麻烦,原因是将Objective- C代码移植到Swift中…在此方面,谁的编译器再也不过分了案件。 该错误似乎始终是: 我尝试过在多个位置进行转换,以防万一我只是在处理一个多余的,古老的原语(由Obj- C或Core Foundation引入)而无济于事。 为了以防万一,我尝试投射响应: 产生错误: …
Dart为布尔数据类型提供内置支持,Dart中的布尔数据类型仅支持两个值 - 和。关键字用于表示Dart中的布尔文字。 在Dart中声明布尔变量的语法,如下所示 - 示例1 执行上面示例代码,得到以下结果 - 示例2 与JavaScript不同,布尔数据类型仅将文字识别为。任何其他值都被视为。考虑以下示例 - 如果在JavaScript中运行,上面的代码段将打印消息 - ,因为如果字符串不为空,结
Python 提供了 bool 类型来表示真(对)或假(错),比如常见的 比较算式,这个是正确的,在程序世界里称之为真(对),Python 使用 True 来代表;再比如 比较算式,这个是错误的,在程序世界里称之为假(错),Python 使用 False 来代表。 True 和 False 是 Python 中的关键字,当作为 Python 代码输入时,一定要注意字母的大小写,否则解释器会报错。
在C语言中,关系运算和逻辑运算的结果有两种,真和假:0 表示假,非 0 表示真。例如: 运行结果: 10 20↙ flag = 0 C语言并没有彻底从语法上支持“真”和“假”,只是用 0 和非 0 来代表。这点在 C++ 中得到了改善,C++ 新增了 bool 类型(布尔类型),它一般占用 1 个字节长度。bool 类型只有两个取值,true 和 false:true 表示“真”,false 表示
2.4 布尔类型 bool 布尔是 19 世纪英国数学家,他建立了命题代数,简单说就是将逻辑推理变成了代数计 算。所谓命题就是可以判断真假的语句,因此在编程语言中,将真、假两个值构成了一个类 型,即布尔类型,真和假也称为布尔值。以真或假为值的表达式称为布尔表达式,它在程序 设计中的作用是描述某种条件,以支持“如果某条件满足,则执行某语句”之类的处理过程。 第 3 章将学习的条件和循环语句中都会用到
问题内容: 没有一种好的方法可以 在一条语句中 将给定数组转换为Java-8 中的 流,否则我会丢失什么? (我不会问 为什么? ,但这确实令人难以理解:为什么不为所有原始类型添加流支持?) 提示: 将不起作用,没有这种类型的方法。 问题答案: 给定用途 请注意,每个布尔值都会被装箱,但这通常不是什么大问题,因为对布尔值的装箱不会分配额外的内存(仅使用预定义的值之一- 或)。