Kotlin when 流程判断
如果学过C或者java C#等语言。 一定熟悉SWITCH这个流程判断
但是在kotlin中却没有这个。而是 使用了When来代替。
当什么时候。
下面我觉一个简单的例子:
import java.util.* fun main (args: Array<String>)
{
var sc:Scanner=Scanner(System.`in`);
var input=sc.next()
when(input)
{
"a"->println(”输入了a“);
"b"->println(”输入了b“);
//很多个
} }
解释:
当when检测input等于下面某个值的时候就执行后面的代码。
当检测到某个值与条件相符合的用->来连接右面要执行的代码。
是一个简单的箭头。减号和大于号组成。
同样,When和if都可以作为表达式,也可以用来赋值。
下面的例子:
import java.util.* fun main (args: Array<String>)
{
var sc:Scanner=Scanner(System.`in`);
var input=sc.next()
var key= when(input)
{
"a"-> "a"
"b"-> "b"
else ->"没有值"
//很多个
}
print("输入了:"+key)
}
值得注意的是,如果when要当作表达式,就一定要有else。 并且是最后一个表达式作为返回得值。
和if一样,表达式,函数都可以作为表达式来检测。(下面这个例子有很大的 问题,但是意思差不多 将就着看看把 等有好例子 我在换)
import java.util.* fun main (args: Array<String>)
{
var sc: Scanner = Scanner(System.`in`);
//var value=
var key= when(go(sc.nextInt()))
{
go(2014)-> "一样的值:2014"
go(2013)-> "一样的值:2013"
go(2012)-> "一样的值:2012"
else ->"no value"
}
print(key)
}
fun go(Year:Int):Int
{
var re= if(Year%4==0)
{
println("闰年")
1
}
else
{
println("不是")
0
}
return re;
}
当我输入2016的时候:
会有如此的结果,也就是说在when用函数作为一个表达式的时候会去运行这个函数。
这个需要注意一下。
Kotlin when 流程判断的更多相关文章
- python学习笔记(基础三:if else流程判断、while循环、for循环)
if else流程判断 getpass在pycharm中无法使用,在命令行窗口中进入python环境可以使用. import getpassusername = input("usernam ...
- Kotlin if else判断
Kotlin的if相对与java,有着较为灵活的用法. if是用来判断. if在Kotlin里面可以作为表达式来使用. 如果熟悉C java C#等 A>B:A?B这个判断应该是很熟悉,而Kot ...
- kotlin 之相等判断
在kotlin 中存在二种相等的判断: 1.引用相等 也就是说,两个引用指向同一个对象,使用===操作 ,相反操作为!==来判断 2.结构相等 使用equals 函数相等和==操作符 a?.equal ...
- python之路-day1-if...else...流程判断
判断输入的用户名:#Author:zww _username = "zww" _password = " username = input("username: ...
- python中if else流程判断
_username='Lily' _password=' username=input("username:") password=input("password:&qu ...
- Oracle PLSQL Demo - 03.流程判断[IF ELEIF ELSE]
declare v_job ) := 'Programmer'; v_sal number; begin if v_job = 'Programmer' then v_sal :; elsif v_j ...
- Mysql查询结果只有一条的情况下把值赋值给变量,再用if else 流程判断
BEGIN set @n=(SELECT count(day) from log where day=CURDATE()); THEN call m_LogInsert(); ELSE call m_ ...
- 学习python第二天 流程判断
while循环age_of_Jim = 56 count = 0 #开始计数while True: #循环代码 if count ==3:#如果次数=3 break#退出 guess_age = in ...
- Day1:If else流程判断
一.if...else语句 if 条件成立: 执行条件成立后的代码 else: 执行条件不成立的代码 注:注意有冒号,python会强制缩进!一般语句都必须顶格写,缩进是缩进一个tab键,等于4个空格 ...
随机推荐
- python开发面向对象基础:封装
一,封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 1. 将变化隔离: 2. 便于使用: 3. 提高复用性: 4. 提高安全性: [封装原则] 1. 将不需要对外提供的内 ...
- 011. Python中*args, **kwargs 和 pass 和self 解释
*args, **kwargs →在python都表示可变参数, *args表示任意多个任意类型无名参数, 是一个元组; **kwargs表示关键字参数(key/value参数), 是一个字典,接收的 ...
- Linux Restricted Shell Bypass
Author: @n4ckhcker & @h4d3sw0rm Introduction Hello, so first of all let’s explain what is a rest ...
- 提高ListView的效率
按照普通的写法,如果ListView里面有比较多的东西的话,在加载每一个Item的时候,是非常非常卡的.具体表现就是滚动起来的时候会看见明显的卡顿. 关键还是处理自定义Adapter里面的getVie ...
- JAXB 专题二(BSP接口实战)
BSP下单接口 1.xml格式如下 <?xml version="1.0" encoding="utf-8"?> <Request servi ...
- python学习——练习题(3)
""" 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? """ import math d ...
- Windows下Git中正确显示中文的设置方法
Windows下Git中正确显示中文的设置方法 具体设置方法如下: 进入目录etc:$ cd /etc 1. 编辑 gitconfig 文件:$ vi gitconfig.在其中增加如下内容: [gu ...
- redis实现发布订阅
订阅者 #!/usr/bin/env python # -*- coding:utf-8 -*- import redis r = redis.Redis(host='192.168.11.119') ...
- SKNode的渲染顺序
[SKNode的渲染顺序] SKNode的zPosition属性,指定相对于其父视图的z轴坐标. The default value is 0.0. The positive z axis is pr ...
- 10-编译PHP并与nginx整合
nginx的URL重写.nginx+PHP的配置也是不可不学的部分.PHP自己手动编译,mysql就自己yum了. yum install 安装mysql 同时进行php的编译,手动编译php 这么多 ...