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 ...
随机推荐
- redis查询 第1个数据库,而不是默认的第0个数据库
redis查询 第1个数据库,而不是默认的第0个数据库 spring.redis.database = 1 默认: spring.redis.database = 0 car-test:0>ge ...
- JSR303数据校验使用方法记录
JSR303并不对应着指定的jar包,而是一种规范,目前hibernate-validator是使用最多的是基于JSR303规范的实现 本文不适合新人观看,要求至少要知道使用方法 Springboot ...
- MinIO 图片转文件的分界线RELEASE.2022-05-26T05-48-41Z
前言:本人想用MinIO存储文件,但是不想最新版本Mete文件,于是各种寻找于是终于找到办法了,原来是官方版本更新导致的.需要我们去寻找相应的版本. 1.官网下载网站 https://dl.min.i ...
- scrapy爬取知名问答网站
scrapy爬取知名问答网站 分析及数据表设计 itemloader方式提取question spider爬虫逻辑的实现以及answer的提取 保存数据到mysql中
- Azure Storage Blob 启用sftp协议支持
背景 我这边需要给前端同学一个上传静态文件的地方,比如js.css.图片.icons等等,前端上传后直接在项目中:我这边用的是Azure Storage blob:为了单独分配权限,我这边打算启用SF ...
- 阿里云ECS主机自建SNAT,实现没有公网的主机通过有公网的主机访问外网
目的: SNAT:实现没有公网IP的ECS实例借助有公网的ECS访问外网 实现前提: 有公网的主机与没有公网的主机必须处在同一个VPC安全组(确保两个主机互通才可以) 全程都在有公网的主机上操作 开启 ...
- DotNetGuide专栏C#/.NET/.NET Core充电站(让你学习不迷路)
DotNetGuide简介 记录.收集和总结C#/.NET/.NET Core基础知识.学习路线.开发实战.编程技巧练习.学习视频.文章.书籍.项目框架.社区组织.开发必备工具.常见面试题.面试须知. ...
- 抓取豆瓣电影TOP250标题-年份-评分-评分人数
import csv import re import requests headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; ...
- NXP i.MX 6ULL工业核心板规格书( ARM Cortex-A7,主频792MHz)
1 核心板简介 创龙科技SOM-TLIMX6U是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的低成本工业级核心板,主频792MHz,通过邮票孔连接方式引出Eth ...
- CF1862C 题解
考虑每个木板在水平放置后对每个位置上产生的贡献. 稍微手玩几组样例: 不难发现一个高度为 \(h\) 的木板在水平放置后会是位置 \([1,h]\) 上高度增加 \(1\). 但是高度最大是 \(10 ...