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判断的更多相关文章

  1. Kotlin when 流程判断

    如果学过C或者java C#等语言. 一定熟悉SWITCH这个流程判断 但是在kotlin中却没有这个.而是 使用了When来代替. 当什么时候. 下面我觉一个简单的例子: import java.u ...

  2. kotlin 之相等判断

    在kotlin 中存在二种相等的判断: 1.引用相等 也就是说,两个引用指向同一个对象,使用===操作 ,相反操作为!==来判断 2.结构相等 使用equals 函数相等和==操作符 a?.equal ...

  3. Kotlin入门(6)条件分支的实现

    上一篇文章介绍了字符串的相关操作,其中示例代码用到了if和for语句,表面上看,Kotlin对控制语句的处理与Java很像,可实际上,Kotlin在这方面做了不少的改进,所以本篇和下一篇文章就分别介绍 ...

  4. kotlin 变量声明

    Kotlin 是强类型的语言,Kotlin 要求所有的变量必须先声明.后使用,声明变量时必须显示或隐式指定变量的类型(隐式的是指,声明的时候同时初始化,这样编译的时候就可以推断出该变量的类型了,Jav ...

  5. Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用

    本文适合有Java基础的人 Kotlin语法特点 相比java,省略括号,可以自动判断类型,省略new关键字,空指针捕获 主函数 kotlin文件(kt文件)中,只有要下列的方法,就可以运行,无需像之 ...

  6. Kotlin 学习(1)

    本文出自链接:https://www.jianshu.com/p/ef9584a8ebf8 Kotlin的插件安装: Settings->Plugins->Browse Repositor ...

  7. Kotlin入门(8)空值的判断与处理

    上一篇文章介绍了如何对循环语句进行操作,末尾还演示了发现空串时直接继续下一循环,只是在初始化字符串数组时使用了“val poem2Array:Array<String?> = ***”,该 ...

  8. Kotlin入门(17)等式判断的情况

    话说等式可是编程语言最基本的表达式之一,不管哪种高级语言,无一例外都采用双等号“==”判断两个变量是否相等:就算是复杂的对象,在Java中也可通过equals函数判断两个实例是否相等.按理说这些能够满 ...

  9. Android的Kotlin秘方(II):RecyclerView 和 DiffUtil

    作者:Antonio Leiva 时间:Sep 12, 2016 原文链接:http://antonioleiva.com/recyclerview-diffutil-kotlin/ 如你所知,在[支 ...

随机推荐

  1. ARM-Linux内核移植之(二)——Linux2.6.22内核移植

    平台:mini2440  交叉工具链:arm-linux-gcc-4.3.2 一.内核移植基本知识 移植内核也叫构建BSP(boardsupprot packet).BSP的作用有两个:一是为内核运行 ...

  2. mybatis generator 用法

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  3. python使用pika链接rabbitmq Connection reset by peer 解决办法

    记录一下, 最近在用机器学习打算做一个Rest API, 数据存入mongo,任务采用消息队列,rabbitmq 由于引擎采用python编写,所以WEB也直接打算用python编写了,比较省事. W ...

  4. 免Oracle客户端程序监听程序配置

    Oracle默认安装时,监听程序和tnsnames程序中的监听方式都是默认的localhost,但免客户端的程序是连接不上的.这时需要: 1.将listener中的(HOST = localhost) ...

  5. Android使用图表库简单教程

    经常要用到统计数据这个功能,要直观的显示出来,最好还是用图表.自己弄也麻烦,所以用了Github上的一个非常著名的开源图标库:MpChart. 使用前去网上找它俩的jar包,然后导入就行.资源比较好找 ...

  6. leetcode852

    int peakIndexInMountainArray(vector<int>& A) { int Len = A.size(); ; ; i < Len - ; i++) ...

  7. 虚拟机之 Wordpress博客搭建

    WordPress博客需要LAMP环境,---  LAMP 官网:https://cn.wordpress.org/ wordpress-4.4.1版本环境要求是: php 5.2.4或以上 mysq ...

  8. JavaScript 18岁生日快乐

    12月4日是JS的18岁生日,18年前这个日子JavaScript由Netscape和Sun联合宣布推出.那个星期,Ruby也将推出其第一个版本. 今天Netscape和Sun都已经不在了,但是JS还 ...

  9. java5 Condition用法--实现线程间的通信

    Condition的功能类似在传统线程技术中的Object.wait()和Object.natify()的功能,传统线程技术实现的互斥只能一个线程单独干,不能说这个线程干完了通知另一个线程来干,Con ...

  10. Reporting Service中配置oracle 数据连接

    一.安装配置报表服务器 数据源 1.安装oracle客户端32位“Oracle - OraClient11g_home1_32bit” 2.配置监听及tnsnames.ora 3.配置ODBC 添加一 ...