当前位置:网站首页>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 num2Does 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
边栏推荐
- ROS learning 4 custom message
- Nodejs modularization
- Ministry of transport and Ministry of Education: widely carry out water traffic safety publicity and drowning prevention safety reminders
- Creation and reference of applet
- Introduction Guide to stereo vision (5): dual camera calibration [no more collection, I charge ~]
- Codeforces Round #648 (Div. 2) D. Solve The Maze
- Use arm neon operation to improve memory copy speed
- Hi Fun Summer, play SQL planner with starrocks!
- Codeworks round 638 (Div. 2) cute new problem solution
- It's too difficult to use. Long articles plus pictures and texts will only be written in short articles in the future
猜你喜欢

nodejs_ 01_ fs. readFile

Global configuration tabbar

Node collaboration and publishing

Programming implementation of ROS learning 6 -service node

Ros- learn basic knowledge of 0 ROS - nodes, running ROS nodes, topics, services, etc
![[technical school] spatial accuracy of binocular stereo vision system: accurate quantitative analysis](/img/59/823b587566f812c76e0e4dee486674.jpg)
[technical school] spatial accuracy of binocular stereo vision system: accurate quantitative analysis

L'information et l'entropie, tout ce que vous voulez savoir est ici.

Solutions of ordinary differential equations (2) examples
![[code practice] [stereo matching series] Classic ad census: (4) cross domain cost aggregation](/img/d8/7291a5b14160600ba73810e6dd1eb5.jpg)
[code practice] [stereo matching series] Classic ad census: (4) cross domain cost aggregation

Applet global style configuration window
随机推荐
Ecmascript6 introduction and environment construction
Array, date, string object method
Codeforces Round #648 (Div. 2) E.Maximum Subsequence Value
Luo Gu p3177 tree coloring [deeply understand the cycle sequence of knapsack on tree]
Svg optimization by svgo
Codeworks round 638 (Div. 2) cute new problem solution
C # compare the differences between the two images
Confusing basic concepts member variables local variables global variables
Huber Loss
2310. The number of bits is the sum of integers of K
3D reconstruction open source code summary [keep updated]
OpenFeign
生成对抗网络
阿里云发送短信验证码
Introduction Guide to stereo vision (2): key matrix (essential matrix, basic matrix, homography matrix)
Applet (use of NPM package)
C#图像差异对比:图像相减(指针法、高速)
2311. 小于等于 K 的最长二进制子序列
Use arm neon operation to improve memory copy speed
MPSoC QSPI flash upgrade method