当前位置:网站首页>Kotlin introductory notes (III) kotlin program logic control (if, when)
Kotlin introductory notes (III) kotlin program logic control (if, when)
2022-07-05 09:14:00 【Meng Meng Mu Xi】
Preface : This tutorial is best done with JAVA Study on the basis of
One 、if Use of statements
kotlin There are two main ways to implement conditional statements in :if and when.
Same usage :
fun largerNumber(num1 : Int , num2 : Int) : Int{
var value = 0
if(num1 > num2) {
value = num1
} else {
value = num2
}
return value
}
Different usage :
fun largerNumber(num1 : Int , num2 : Int) : Int {
val value = if (num1 > num2){
num1
}else{
num2
}
return value
}
kotlin And java Of if The statements are roughly the same , but kotlin Of if Statement can have a return value !!!
But there is a problem with the above code ,kotlin It is the most concise language , The above code has too many unnecessary parts . stay kotlin in , We can use the following expression instead ( If you have unclear friends, you can read my first two blogs ):
fun largerNumber(num1 : Int,num2 : Int) = if(num1 > num2) num1 else num2
Does it look much more comfortable ? Hem ...,Kotlin The charm of is still behind !
Two 、When sentence
use when And those still in use switch...case Compared with the language of , It's so happy ...( Roast about what anti human can't get rid of break) Don't talk much , Here comes the example ...... Ah , This example is complete , Why don't you see it yet ....
Suppose you compile a function to query exam scores ( if sentence ):
fun getScore(name : String) = if (name == "Tom") {
86
} else if (name == "Jim") {
77
} else if (name == "Jack") {
95
} else if (name == "Lily") {
100
} else {
0
}
But when we use when when , You can compare :
fun getScore(name : String) = when (name) {
"Tom" -> 86
"Jim" -> 77
"Jack" -> 95
"Lily" -> 100
else -> 0
}
Is it refreshing ?
The format is as follows :
when( Any type of parameter ) {
Match the value -> { Perform logical }
}
When the execution logic has only one sentence , { } It can also be omitted . Of course , It's an exact match . In addition to precise matching , We also have type matching ... Examples are as follows :
fun checkNumber(num : Number) {
when (num) {
is Int -> println("num is Int")
is Double -> println("num is Double")
else -> println("num neither Int, Neither Double")
}
}
when There is another way to write a statement without parameters
Take the example just now :
fun getScore(name : String) = when {
name == "Tom" -> 86
name == "Jim" -> 77
name == "Jack" -> 95
name == "Jack" -> 100
else -> 0
}
Be careful ,Kotlin When judging whether strings or objects are equal, you can directly use == .( And Java Different )
In addition to this precise match ,when It can also cooperate with startsWith() Realization Fuzzy matching ( With Tom Everyone at the beginning 86 branch ):
fun getScore(name : String) = when {
// With Tom Everyone at the beginning 86 branch
name.startsWith("Tom") -> 86
name == "Jim" -> 77
name == "Jack" -> 95
name == "Jack" -> 100
}
Okay , That's all for this issue , Remember to pay attention if you like !!! RI Geng Zhong !!!
Kotlin The small white , I took notes while studying teacher Guolin's works . If there are any mistakes, please point out ! Thank you for reading !
Reference resources :
《 First line of code Android ( The third edition )》 --- Guo Lin
边栏推荐
- Introduction Guide to stereo vision (1): coordinate system and camera parameters
- The combination of deep learning model and wet experiment is expected to be used for metabolic flux analysis
- Programming implementation of subscriber node of ROS learning 3 subscriber
- Huber Loss
- Causes and appropriate analysis of possible errors in seq2seq code of "hands on learning in depth"
- asp. Net (c)
- Introduction Guide to stereo vision (7): stereo matching
- 我的一生.
- Introduction Guide to stereo vision (4): DLT direct linear transformation of camera calibration [recommended collection]
- Golang foundation -- map, array and slice store different types of data
猜你喜欢
Editor use of VI and VIM
Ros- learn basic knowledge of 0 ROS - nodes, running ROS nodes, topics, services, etc
Use and programming method of ros-8 parameters
TF coordinate transformation of common components of ros-9 ROS
L'information et l'entropie, tout ce que vous voulez savoir est ici.
嗨 FUN 一夏,与 StarRocks 一起玩转 SQL Planner!
利用请求头开发多端应用
[daiy4] copy of JZ35 complex linked list
Programming implementation of ROS learning 2 publisher node
信息與熵,你想知道的都在這裏了
随机推荐
Rebuild my 3D world [open source] [serialization-2]
Editor use of VI and VIM
kubeadm系列-02-kubelet的配置和启动
STM32简易多级菜单(数组查表法)
The location search property gets the login user name
Oracle advanced (III) detailed explanation of data dictionary
. Net service governance flow limiting middleware -fireflysoft RateLimit
np. allclose
Ros-11 common visualization tools
scipy. misc. imread()
Causes and appropriate analysis of possible errors in seq2seq code of "hands on learning in depth"
File server migration scheme of a company
Beautiful soup parsing and extracting data
Applet network data request
Golang foundation - the time data inserted by golang into MySQL is inconsistent with the local time
22-07-04 西安 尚好房-项目经验总结(01)
2311. Longest binary subsequence less than or equal to K
Svgo v3.9.0+
Ros-10 roslaunch summary
Solutions of ordinary differential equations (2) examples