java里面能用0和1表示False和true吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里面能用0和1表示False和true吗?相关的知识,希望对你有一定的参考价值。
不能。
Java中的真,假只能由布尔型(boolean)的true和false来表示,不对应任何数值。
java中不可以通过强制转换将true和false转换成1和0,因为布尔类型与其他基本类型数据不可以互相转换。
可以用条件运算符:
inta=(b==true)?1:0;//如果b为true则给a赋值1,如果为false则赋值0。
扩展资料:
Java的技术应用
在android的应用。许多Android应用程序是由Java程序员开发的。虽然Android使用不同的JVM和不同的封装方法,但是代码是用Java语言编写的。
在金融业的应用。Java广泛应用于金融服务业。许多第三方交易系统,银行和金融机构选择在Java开发,因为Java是相对安全的。
在高频交易的空间应用。Java平台提高了平台的特性,并使得它能够像编译C++那样传输数据,已经成为程序员编写交易平台的一种语言。
不能.
Java中的真,假只能由布尔型(boolean)的true和false来表示,不对应任何数值.
注意这与C语言中不同.
希望对你有所帮助,望采纳。 参考技术B 不能像C语言那样
while(0)或while(1)
这样编译通不过的
可以这样写
while(int_name==0)或if(int_name==1)
同时,java有boolean类型变量,
有两个值true
,false
JavaScript 中是 true == 1 和 false == 0 吗?
【中文标题】JavaScript 中是 true == 1 和 false == 0 吗?【英文标题】:Is true == 1 and false == 0 in JavaScript? 【发布时间】:2012-08-27 12:09:50 【问题描述】:我正在阅读一本关于 JavaScript 的好书。
开头是:
布尔类型只接受两个字面值:真和假。它们与数值不同,所以 true 不等于 1,false 不等于 0。
但是,我观察到以下情况:
if(1==true)
document.write("oh!!! that's true"); //**this is displayed**
我知道,JavaScript 中的每种类型都有对应的布尔值。
但是,真相是什么?
【问题讨论】:
Possible duplicate 另一个非常接近的问题(尽管来自@Jeroen 的问题有更好的答案):***.com/questions/8265401/… 我们在这里谈论的是哪本“好书”? @Pointy 它的 Wrox 专业 JavaScript 【参考方案1】:尝试严格相等比较:
if(1 === true)
document.write("oh!!! that's true"); //**this is not displayed**
==
运算符会从一种类型转换为另一种类型,===
运算符不会。
【讨论】:
【参考方案2】:啊,可怕的松散比较运算符又来了。永远不要使用它。始终使用严格比较,=== 或 !== 代替。
奖励事实:0 == ''
【讨论】:
为什么 0==' ' 是真的?而 " "=="0" 是假的? @Ankita,这里都是同一类型 " " == "0"【参考方案3】:在 JavaScript 中,== 读作“可能等于”。
我的意思是,JavaScript 会自动将布尔值转换为整数,然后尝试比较两侧。
对于真正的相等,使用 === 运算符。
【讨论】:
其实就是把Integer转成Boolean,然后比较,但是思路不错。 @nonrectangular 刚刚确认它实际上是从布尔值转换为整数;请参阅上面答案中的 cmets 以及下面的 João Silva's explanation。【参考方案4】:使用===
代替==
来等同变量。
==
检查变量的值是否相似
===
检查变量的值和变量的类型是否相似
注意如何
if(0===false)
document.write("oh!!! that's true");
和
if(0==false)
document.write("oh!!! that's true");
给出不同的结果
【讨论】:
【参考方案5】:使用 == 您实际上是在比较变量与 false 比较时是否为 false 或与 true 比较时是否为 true。如果你使用 ===,它将比较变量的确切值,所以 true 不会 === 1
【讨论】:
【参考方案6】:true
和 false
在 Javascript 中确实不代表任何数值。
在某些语言(例如 C、VB)中,布尔值被定义为实际数值,因此它们只是 1 和 0(或 -1 和 0)的不同名称。
在其他一些语言(例如 Pascal、C#)中,有一种独特的布尔类型,它不是数字。可以在布尔值和数值之间进行转换,但不会自动发生。
Javascript 属于具有独特布尔类型的类别,但另一方面,Javascript 非常热衷于在不同数据类型之间转换值。
例如,即使数字不是布尔值,您也可以在需要布尔值的地方使用数值。使用if (1) ...
的效果与if (true) ...
一样好。
在比较值时,例如在您的示例中,==
运算符和 ===
运算符之间存在差异。 ==
相等运算符很乐意在类型之间进行转换以找到匹配项,因此 1 == true
的计算结果为 true,因为 true
被转换为 1
。 ===
类型相等运算符不进行类型转换,因此 1 === true
计算结果为 false,因为值属于不同类型。
【讨论】:
如果像1
这样的数字确实被转换为true
进行比较,那么为什么2 == true
也不评估为true?为了证明2
在转换为布尔值时也被视为true
,!!2 == true
的计算结果为真。
@user193130:对不起,答案有误,当您比较它们时,转换是从布尔值到数字。 true
被转换为1
,所以1 == true
的计算结果为真,而2 == true
的计算结果为假。当您使用值作为条件时,必须转换为布尔值,因为这是条件可以是唯一的类型。
嗯,有道理。刚刚测试了+true === 1
,结果为真。
我认为这很令人困惑,在 JavaScript 中 -1 等于 true!例如,如果你这样做 if(str.indexOf("something")) dosomething();即使在 str 变量中找不到“某物”,它也会这样做。
@McVitas:indexOf
方法不适合那样使用。即使-1
被解释为false
,如果在第一个位置找到该字符串也不会起作用。因为indexOf
返回0
,如果在第一个位置找到字符串,那也将被解释为false
。您可以使用if(str.indexOf("something") + 1)
,但这很模糊,最好使用if(str.indexOf("something") != -1)
查找特殊值-1
。【参考方案7】:
来自 ECMAScript 规范,11.9.3 The Abstract Equality Comparison Algorithm 部分:
比较 x == y,其中 x 和 y 是值,产生 true 或 错误的。这样的比较是这样进行的:
如果 Type(y) 是 Boolean,则返回比较结果 x == ToNumber(y)。
因此,if (1 == true)
、true
被强制转换为Number
,即Number(true)
,这导致1
的值,产生最终的if (1 == 1)
,即true
。
if (0 == false)
是完全相同的逻辑,因为Number(false) == 0
。
当您使用严格的等于运算符 ===
时,不会发生这种情况:
11.9.6 The Strict Equality Comparison Algorithm
比较 x === y,其中 x 和 y 是值,产生 true 或 错误的。这样的比较是这样进行的:
如果 Type(x) 与 Type(y) 不同,则返回 false。
【讨论】:
这回答了我的问题 - Boolean 会被转换为 Number / Number 会被转换为 Boolean 吗?答案是 - Boolean 被转换为 Number【参考方案8】:实际上,如果 javascript 中的每个对象都像 W3Cschools 所说的那样具有“真正的价值”,它就会解析为 true。这意味着除了""
、NaN
、undefined
、null
或 0
之外的所有内容。
使用 ==
运算符针对布尔值测试一个数字确实有点奇怪,因为布尔值在比较之前会转换为数字 1,这有点违背定义背后的逻辑。
当你做这样的事情时,这会变得更加混乱:
var fred = !!3; // will set fred to true
var joe = !!0; // will set joe to false
alert("fred = "+ fred + ", joe = "+ joe);
并非 javascript 中的所有内容都很有意义 ;)
【讨论】:
“并非 javascript 中的所有内容都有意义” - 如果您了解类型强制,则此示例非常有意义。【参考方案9】:当与布尔值比较时,它的工作原理如下
第 1 步:将 boolean
转换为 Number
Number(true) // 1
和 Number(false) // 0
第 2 步:比较两边
boolean == someting
-> Number(boolean) === someting
如果将1
和2
与true
进行比较,您将得到以下结果
true == 1
-> Number(true) === 1
-> 1 === 1
-> true
还有
true == 2
-> Number(true) === 1
-> 1 === 2
-> false
【讨论】:
以上是关于java里面能用0和1表示False和true吗?的主要内容,如果未能解决你的问题,请参考以下文章
java中if条件里面判断boolean值判断的true还是false?
JavaScript 中是 true == 1 和 false == 0 吗?