Kotlin if else判断
Kotlin的if相对与java,有着较为灵活的用法。
if是用来判断。
if在Kotlin里面可以作为表达式来使用。
如果熟悉C java C#等 A>B:A?B这个判断应该是很熟悉,而Kotlin则是没有。因为if就可以代替了。
好了,我们按顺序学习。
传统判断:
fun main(args:Array<String>)
{
var x=15
var y=
println("${x}和${y}两个数比较大的是${Big(x,y)}")
}
fun Big(x:Int,y:Int):Int
{
if(x>y)
return x
else
return y
}
用法简单易懂。返回两个数的最大数
else
是但if条件不成立的时候就执行esle代码块的东西。
语法:
if(条件) //条件是表达式或者数值
{
代码xxxx
}
else //当if条件不成立的时候执行else内的代码
{
代码
}
if也可以单独使用。
if(条件)
{
代码xxx
}
if也可以进行多重嵌套
代码实例:
fun main(args:Array<String>)
{
var x=
var y=
var z=
println("${x},${y},${z}三个数比较大的是${Big(x,y,z)}")
} fun Big(x:Int,y:Int,z:Int):Int
{
if (x>y)
{
if(x<z)
{
return z
}
else{
return x
}
}
else
{
if (y>z)
{
return y;
}
else
{
return z
}
} return y
}
这个就是一个if else嵌套。
以上就是if 的单分支 多分支 双分支的用法。
也就是传统的用法。
那么我之前说过 if可以代替: ?这个判断。
而这是什么意思呢?
意思是if可以作为表达式,并且可以将if的结果作为值。不过注意的是if 的作为表达式的时候必须要有else部分代码块。
正好 我看上面这个判断三个数最大值的代码有点长 有点啰嗦。 我们用这个if 可以代替: ?的,可以作为表达式的特性 。来改一下。
代码如下:
fun main(args:Array<String>)
{
var x=
var y=
var z=
println("${x},${y},${z}三个数比较大的是${Big(x,y,z)}")
} fun Big(x:Int,y:Int,z:Int):Int
{
var Max:Int;
Max=if (x>y) x else y
Max=if(Max>z)Max else z
return Max
}
这样子if赋值在java中简直不能想象。
太便利了。
这里面值得注意的是,if(x>y)z 这个地方,是最后的值作为值,来进行赋值。
也就是if(x>y)printl("very Big")z, 作为值的是z,记住是最后一个作为一个值。如果是表达式,那么表达式的值将作为值来进行赋值
fun main(args:Array<String>)
{
var x=
var y=
var z=
println("${x},${y},${z}三个数比较大的是${Big(x,y,z)}")
} fun Big(x:Int,y:Int,z:Int):Boolean
{
var Max:Boolean
Max=if (x>y) x>y else false
// Max=if(Max>z)Max else z
return Max
}
上面的代码 瞎写了一下。
就是让你们看一下啊,if的结果赋值,可以是值,也可以表达式。
总结一下:
if有传统的用法。
if 可以作为表达式
if可以将比较的结果当作值进行赋值。表达式也没有关系。 if赋值的结果是最后位一表达式。
if作为表达式的时候必须要有else代码块。
Kotlin if else判断的更多相关文章
- Kotlin when 流程判断
如果学过C或者java C#等语言. 一定熟悉SWITCH这个流程判断 但是在kotlin中却没有这个.而是 使用了When来代替. 当什么时候. 下面我觉一个简单的例子: import java.u ...
- kotlin 之相等判断
在kotlin 中存在二种相等的判断: 1.引用相等 也就是说,两个引用指向同一个对象,使用===操作 ,相反操作为!==来判断 2.结构相等 使用equals 函数相等和==操作符 a?.equal ...
- Kotlin入门(6)条件分支的实现
上一篇文章介绍了字符串的相关操作,其中示例代码用到了if和for语句,表面上看,Kotlin对控制语句的处理与Java很像,可实际上,Kotlin在这方面做了不少的改进,所以本篇和下一篇文章就分别介绍 ...
- kotlin 变量声明
Kotlin 是强类型的语言,Kotlin 要求所有的变量必须先声明.后使用,声明变量时必须显示或隐式指定变量的类型(隐式的是指,声明的时候同时初始化,这样编译的时候就可以推断出该变量的类型了,Jav ...
- Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用
本文适合有Java基础的人 Kotlin语法特点 相比java,省略括号,可以自动判断类型,省略new关键字,空指针捕获 主函数 kotlin文件(kt文件)中,只有要下列的方法,就可以运行,无需像之 ...
- Kotlin 学习(1)
本文出自链接:https://www.jianshu.com/p/ef9584a8ebf8 Kotlin的插件安装: Settings->Plugins->Browse Repositor ...
- Kotlin入门(8)空值的判断与处理
上一篇文章介绍了如何对循环语句进行操作,末尾还演示了发现空串时直接继续下一循环,只是在初始化字符串数组时使用了“val poem2Array:Array<String?> = ***”,该 ...
- Kotlin入门(17)等式判断的情况
话说等式可是编程语言最基本的表达式之一,不管哪种高级语言,无一例外都采用双等号“==”判断两个变量是否相等:就算是复杂的对象,在Java中也可通过equals函数判断两个实例是否相等.按理说这些能够满 ...
- Android的Kotlin秘方(II):RecyclerView 和 DiffUtil
作者:Antonio Leiva 时间:Sep 12, 2016 原文链接:http://antonioleiva.com/recyclerview-diffutil-kotlin/ 如你所知,在[支 ...
随机推荐
- composer 发布自己的开源软件
首先创建一个github项目. 在项目中,创建一个composer.json文件. { "name": "jiqing9006/valid", "de ...
- xunsearch使用SCWS
目录 创建分词对象 获取分词结果 提取重要词汇 在 Xunsearch 使用 SCWS 创建分词对象 $xs = new XS('my'); // 必须先创建一个 xs 实例,否则会抛出异常 $tok ...
- USB接线图
一.简介 通用串行总线(英文:Universal Serial Bus,简称USB)是连接外部装置的一个串口汇流排标准,在计算机上使用广泛,但也可以用在机顶盒和游戏机上,补充标准On-The-Go( ...
- 微信小程序中在页面中实现下拉刷新显示提醒语后在消失
最近在做小程序的时候遇见一个问题,就是页面要下拉刷新给客户一个提醒语,查看了小程序的官方文档 这里有个注意点:如果你是一页进行下拉刷新就在那个文件夹的json里面加上"enablePullD ...
- ELK(Elasticsearch/Logstash/Kibana)安装时常见错误总结
问题一: [2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter: Java.lang ...
- SonarQube在CentOS上的安装
1 简介 SonarQube 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等 ...
- WordPress,discuz 根据不同的入口url更换logo
Discuz!中调用cookie的思路出来了: 设置cookie:dsetcookie('cookie名', 'cookie值', '有效时间'); 读取cookie有两种方法,第一种使用get ...
- printf 的格式
1) 类型类型字符用以表示输出数据的类型,其格式符和意义如下表所示: %c 输出单个字符 %s 输出字符串 %u 以十进制形式输出无符号整数 %d 以十进制形式输出带符号整数(正数不输出符号) ...
- 【原创】12. MYSQL++之Template Query
1. 什么是Template Query 在我们实际的编程过程中,我们很容易碰到printf这类需要在运行时来决定到底打印出什么的函数,例如 printf(“hello %s”, sth); 在这个例 ...
- SQL Server 索引维护:系统常见的索引问题
在很多系统中,比如本人目前管理的数据库,索引经常被滥用,甚至使用DTA(数据库引擎优化顾问)来成批创建索引(DTA目前个人认为它的真正用处应该是在发现缺失的统计信息,在以前的项目中,用过一次DTA,里 ...