Kotlin 布尔值教程:深入理解与应用示例
Kotlin 布尔值
在编程中,您经常需要一种只能有两个值的数据类型,例如:
- 是 / 否
- 开 / 关
- 真 / 假
为此,Kotlin 有一种布尔数据类型,可以取 true 或 false 值。
布尔值
布尔类型可以用 Boolean 关键字声明,并且只能取 true 或 false 值:
示例
val isKotlinFun: Boolean = true
val isFishTasty: Boolean = false
println(isKotlinFun) // 输出 true
println(isFishTasty) // 输出 false
就像您在前几章中学到的其他数据类型一样,上面的示例也可以在不指定类型的情况下编写,因为 Kotlin 足够智能,可以理解变量是布尔类型:
示例
val isKotlinFun = true
val isFishTasty = false
println(isKotlinFun) // 输出 true
println(isFishTasty) // 输出 false
布尔表达式
布尔表达式返回一个布尔值:true 或 false。
您可以使用比较运算符,例如大于(>)运算符,来判断表达式(或变量)是否为真:
示例
val x = 10
val y = 9
println(x > y) // 返回 true,因为 10 大于 9
或者更简单:
示例
println(10 > 9) // 返回 true,因为 10 大于 9
在下面的示例中,我们使用等于(==)运算符来评估表达式:
示例
val x = 10
println(x == 10) // 返回 true,因为 x 的值等于 10
示例
println(10 == 15) // 返回 false,因为 10 不等于 15
表达式的布尔值是所有 Kotlin 比较和条件的基础。
在下一章中,您将学习更多关于条件的内容。
Kotlin 条件和 If..Else
Kotlin 支持数学中的常见逻辑条件:
- 小于:
a < b - 小于或等于:
a <= b - 大于:
a > b - 大于或等于:
a >= b - 等于:
a == b - 不等于:
a != b
您可以使用这些条件为不同的决策执行不同的操作。
Kotlin 有以下条件语句:
- 使用
if指定在条件为true时要执行的一段代码 - 使用
else指定在条件为false时要执行的一段代码 - 使用
else if在第一个条件为false时测试新的条件 - 使用
when指定多个替代代码块来执行
注意:与 Java 不同,if..else 可以在 Kotlin 中用作语句或表达式(为变量赋值)。请参阅页面底部的示例以更好地理解它。
Kotlin if
使用 if 指定在条件为 true 时要执行的一段代码。
语法
if (condition) {
// 如果条件为 true 要执行的代码块
}
注意,if 是小写字母。大写字母(If 或 IF)会产生错误。
在下面的示例中,我们测试两个值以确定 20 是否大于 18。如果条件为 true,打印一些文本:
示例
if (20 > 18) {
println("20 大于 18")
}
我们还可以测试变量:
示例
val x = 20
val y = 18
if (x > y) {
println("x 大于 y")
}
示例解释
在上面的示例中,我们使用两个变量 x 和 y 来测试 x 是否大于 y(使用 > 运算符)。由于 x 是 20,y 是 18,并且我们知道 20 大于 18,因此我们在屏幕上打印 "x 大于 y"。
Kotlin else
使用 else 指定在条件为 false 时要执行的一段代码。
语法
if (condition) {
// 如果条件为 true 要执行的代码块
} else {
// 如果条件为 false 要执行的代码块
}
示例
val time = 20
if (time < 18) {
println("Good day.")
} else {
println("Good evening.")
}
// 输出 "Good evening."
示例解释
在上面的示例中,time(20)大于 18,因此条件为 false,因此我们转到 else 条件并在屏幕上打印 "Good evening"。如果 time 小于 18,程序会打印 "Good day"。
Kotlin else if
使用 else if 在第一个条件为 false 时指定一个新条件。
语法
if (condition1) {
// 如果 condition1 为 true 要执行的代码块
} else if (condition2) {
// 如果 condition1 为 false 且 condition2 为 true 要执行的代码块
} else {
// 如果 condition1 和 condition2 都为 false 要执行的代码块
}
示例
val time = 22
if (time < 10) {
println("Good morning.")
} else if (time < 20) {
println("Good day.")
} else {
println("Good evening.")
}
// 输出 "Good evening."
示例解释
在上面的示例中,time(22)大于 10,因此第一个条件为 false。在 else if 语句中的下一个条件也为 false,因此我们转到 else 条件,因为 condition1 和 condition2 都为 false,并在屏幕上打印 "Good evening"。
然而,如果 time 是 14,我们的程序会打印 "Good day"。
Kotlin If..Else 表达式
在 Kotlin 中,您还可以将 if..else 语句用作表达式(为变量赋值并返回):
示例
val time = 20
val greeting = if (time < 18) {
"Good day."
} else {
"Good evening."
}
println(greeting)
使用 if 作为表达式时,您还必须包含 else(必需)。
注意:如果 if 只有一个语句,可以省略大括号 {}:
示例
fun main() {
val time = 20
val greeting = if (time < 18) "Good day." else "Good evening."
println(greeting)
}
提示:这个示例类似于 Java 中的“三元运算符”(简写的 if...else)。
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
Kotlin 布尔值教程:深入理解与应用示例的更多相关文章
- 大爽Python入门教程 3-1 布尔值: True, False
大爽Python入门公开课教案 点击查看教程总目录 1 布尔值介绍 从判断说起 回顾第一章介绍的简单的判断 >>> x = 10 >>> if x > 5: ...
- 如果理解&&运算符和各类数值的布尔值
&&(且运算符):表示二者都为true才为true: 短路原则:例如 : a && b; 当a为true时,程序无论如何都会走b,而不管b为true或者false ...
- 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...
- Python的布尔值与空值
1.Boolean值(布尔值) 一个布尔值只有Ture.False两种值 b1 =True b2 =False print (b1,b2)>>>True False 2.空值(non ...
- Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
一. Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, ...
- javascript 强制转换规则 boolean 布尔值类型
摘自 <你不知道的Javascript(中卷)> p55 一句话简述, 假值表以外的值均可以认为是真值,部分浏览器可能自定义了假值表以外的假值,并不符合W3C规范,需要特殊对待. 首先也是 ...
- 正经学C#_布尔运算[布尔值与其布尔运算符]:《c#入门经典》
前面几个章节简述了 C#中得常用得算术运算符.这一章节说布尔值与其布尔运算符. 布尔值在c#中表示方式是 bool类型,这个类型可以储存两个值,true或者false,或者真或者假,可以说0或者1. ...
- Python基础 整形、布尔值、if条件判断、while循环、运算符、格式化输出
1,计算机基础.2,python历史. 宏观上:python2 与 python3 区别: python2 源码不标准,混乱,重复代码太多, python3 统一 标准,去除重复代码.3,python ...
- null, undefined 和布尔值
说明:此类博客来自以下链接,对原内容做了标注重点知识,此处仅供自己学习参考! 来源:https://wangdoc.com/javascript/basic/introduction.html 1.n ...
- Python布尔值
在学到Python数据类型时,发现与大多数语言没什么区别 布尔值可以用 and or not 来运算 and运算是与运算,所有条件都符合才为true >>> True and Tru ...
随机推荐
- python 日志写入文件
import logging fmt = "%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s" ...
- java 8 stream toMap问题
最近使用java的stream功能有点多,理由有2: 1)少写了不少代码 2)在性能可以接受的范围内 在巨大的collection基础上使用stream,没有什么经验.而非关键业务上,乐于使用stre ...
- 高通mm-camera平台 Camera移植
高通Cam-X平台 Camera移植 注:此文档以在高通8916平台移植OV5648为例,给大家讲解Android SOC的底层Camera. Reference: https://blog.csdn ...
- Linux的访问权限详解
题目 解读访问权限 rw-r--r--分别代表什么东西 r:代表可读 w:可写 e:可执行 方便起见进行拆分 rw- 代表文件所属用户的权限 r-- 代表同组用户的权限 r-- 代表其他用户的权限 同 ...
- xlookup与vlookup的区别
区别还是很大的,vlookup暂时扔不了.
- Java 面向对象编程之InstanceOf关键词和多态
InstanceOf关键字使用,什么是多态 InstanceOf关键字 是Java的一个二元操作符(运算符),也是Java的保留关键字 语法 //如果该object 是该class的⼀个实例,那⼀个实 ...
- 基于MindSpore实现BERT对话情绪识别
本文分享自华为云社区<[昇思25天学习打卡营打卡指南-第二十四天]基于 MindSpore 实现 BERT 对话情绪识别>,作者:JeffDing. 模型简介 BERT全称是来自变换器的双 ...
- [oeasy]python0109_tty_打字头_电传打字机_字模_点阵字库
点阵字库 回忆上次内容 上次回顾了 字符字型 的 进化过程 从 谷腾堡 活字 到 罗马正字 和 意大利斜体 罗马帝国战斗力的征服 和 基督教文化传播 使得 拉丁字符 在日耳曼语地区广泛传播 种葡萄 ...
- P10244 String Minimization 题解
P10244 String Minimization 题意 给你四个长度为 \(n\) 的字符串,分别是 \(abcd\). 你可以选择一个 \(i\) 然后交换 \(a[i]\) 和 \(c[i]\ ...
- git操作之一:git add/commit/init
在日常的开发中,适用版本控制系统来进行协同开发已经是工作中的常态,使用比较多的要数git这个工具,今天就来说下git的日常用法以及在开发中的一些疑惑. 一.概述 git在日常开发中广泛应用,其概念可以 ...