CodeGym /Java 课程 /Java 语法 /boolean 类型

boolean 类型

Java 语法
第 4 级 , 课程 7
可用

CodeGym大学课程体系中包括讲师在线讲座的部分视频。赶快报名吧


“嗨,阿米戈。我来给你介绍一种新的数据类型:boolean。此类型变量只能取两个值:truefalse

“如何使用它?”

“此类型在很多地方被隐式地使用。就像任何加法运算都会生成数字一样,任何比较的结果都是一个 boolean。下面是一些示例:”

代码 说明
1
boolean m;
这两个表达式是等效的。boolean 变量的默认值为 false
2
boolean m = false;
3
if (a > b)
    System.out.println(a);
比较的结果(truefalse)将赋给变量 m。如果表达式的计算结果为 true,则满足条件。
4
boolean m = (a > b);
if (m)
    System.out.println(a);
5
boolean m = (a > b);
if (m == true)
    System.out.println(a);
无需将逻辑 (boolean) 变量和 truefalse 进行比较。比较的结果将是与另一个变量匹配的 boolean 值。例如,true == true 的计算结果为 true; true == false 的计算结果为 false
6
boolean m = (a > b);
if (m)
    System.out.println(a);

“更多示例:”

代码 说明
1
public boolean isALessThenB (int a, int b)
{
    if (a < b)
        return true;
    else
        return false;
}
此方法验证数字 a 小于数字 b。

这是四个等效比较。最后一个比较最紧凑、最正确。请始终尝试使用紧凑表示法。

2
public boolean isALessThenB (int a, int b)
{
   boolean m = (a < b);
    if (m)
        return true;
    else
        return false;
}
3
public boolean isALessThenB (int a, int b)
{
    boolean m = (a < b);
    return m;
}
4
public boolean isALessThenB (int a, int b)
{
    return a < b;
}

“如果我想写 0<a<b,该怎么做?”

“Java 没有带三个操作数的比较运算符。因此,你需要这样做:(0<a) AND (a<b)。”

“我要写单词 AND 吗?”

“别急。我会解释的。Java 有三个逻辑运算符:ANDORNOT。可以使用它们来构造复杂程度不同的条件。只能将这些运算符与 boolean 表达式一起使用。因此,不能写成 (a+1) AND (3),但可以写成 (a>1) AND (a<3)。”

NOT 运算符是一元的:它只影响右边的表达式。它更像是负数前面的负号,而不是两个数字之间的乘号。”

“你可以对 boolean(逻辑)变量执行各种操作。”

“比如?”

“我们来看一下:”

逻辑运算符 Java 表示法 表达式 结果
AND && true && true true
true && false false
false && true false
false && false false
OR || true || true true
true || false true
false || true true
false || false false
NOT ! !true false
!false true
常用组合和表达式 m && !m false
m || !m true
! (a && b) !a || !b
! (a || b) !a && !b

“可以再举几个例子吗?”

“当然可以:”

Java 表示法 逻辑表示法
(a<3) && (a>0) (a < 3) AND (a>0)
(a>10) || (a<100) (a>10) OR (a<100)
(a<b) && (!(c<=d)) (a<b) AND (NOT (c<=d))

“现在来完成几个任务。”

评论 (35)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
nanimonai 级别 19,中国
28 八月 2024
String res = ""; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String num = reader.readLine(); if (num.length() == 3) res += "三位"; else if (num.length() == 2) res += "两位"; else res += "一位"; if (Integer.parseInt(num) % 2 == 0) res += "偶数"; else res += "奇数"; if(1<=Integer.parseInt(num) && 999>=Integer.parseInt(num)) System.out.println(res);
黄z聰 级别 18,Tokyo,China
5 十一月 2023
第三天打卡,加油有缘人
J-S-H 级别 25,Fuzhou,China
22 八月 2023
问一下哈,后面会有框架的知识么
Henry Lee 级别 6,Tokyo,Japan
4 九月 2023
现在好像没有。
拔萝卜滴🐰 级别 22,chengdu,China Expert
28 一月 2023
第四天打卡!今日目标冲级别6!
元. 级别 26,Taipei,Taiwan, Province of China
20 十二月 2022
卡了好幾個月,我想四級已經是我的極限了😪
勇成 文 级别 12,China,China
2 一月 2023
加油!guys!我发现帮助里面有很强大的功能,实在不行就去哪里看看,可以寻找灵感哟!
Super Ego 级别 14,Wu Han,China
27 一月 2023
一个月后看到你现在已经是12级了!我现在也是4级,加油,不放弃🥳
Anonymous #11374458 级别 16,Cambridge,中国
2 八月 2023
26了可以
Henry Lee 级别 6,Tokyo,Japan
4 九月 2023
太励志了!
Ocean 级别 22,China,Hong Kong
14 七月 2022
mark
4 七月 2022
打卡
阿狼 级别 32,Zhengzhou,China
5 六月 2022
枚举法的憨憨看过来🤡
KAI 级别 22,Wenzhou,China
2 三月 2023
用计数器
illion 级别 9,China,China
23 十一月 2021
我敲的太复杂了,直接统计个数++就行了,结果我把所有情形全部列举了出来
sytlearnjava 级别 7
7 六月 2021
我想复杂了