当前位置:网站首页>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
边栏推荐
- The location search property gets the login user name
- 【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
- 浅谈Label Smoothing技术
- [daiy4] copy of JZ35 complex linked list
- 2311. 小于等于 K 的最长二进制子序列
- Svg optimization by svgo
- Introduction Guide to stereo vision (7): stereo matching
- [code practice] [stereo matching series] Classic ad census: (6) multi step parallax optimization
- OpenFeign
- 太不好用了,长文章加图文,今后只写小短文
猜你喜欢

Add discount recharge and discount shadow ticket plug-ins to the resource realization applet

Applet (global data sharing)

Node collaboration and publishing

牛顿迭代法(解非线性方程)

Solution to the problems of the 17th Zhejiang University City College Program Design Competition (synchronized competition)

TF coordinate transformation of common components of ros-9 ROS

Solutions of ordinary differential equations (2) examples

Introduction Guide to stereo vision (7): stereo matching

Programming implementation of subscriber node of ROS learning 3 subscriber

Wxml template syntax
随机推荐
.NET服务治理之限流中间件-FireflySoft.RateLimit
Talking about label smoothing technology
牛顿迭代法(解非线性方程)
Add discount recharge and discount shadow ticket plug-ins to the resource realization applet
[beauty of algebra] singular value decomposition (SVD) and its application to linear least squares solution ax=b
ROS learning 1- create workspaces and function packs
C # draw Bezier curve with control points for lattice images and vector graphics
Progressive JPEG pictures and related
Hi Fun Summer, play SQL planner with starrocks!
Confusing basic concepts member variables local variables global variables
生成对抗网络
Rebuild my 3D world [open source] [serialization-3] [comparison between colmap and openmvg]
Introduction Guide to stereo vision (7): stereo matching
Wxss template syntax
Golang foundation - the time data inserted by golang into MySQL is inconsistent with the local time
scipy. misc. imread()
【PyTorch Bug】RuntimeError: Boolean value of Tensor with more than one value is ambiguous
Blogger article navigation (classified, real-time update, permanent top)
Transfer learning and domain adaptation
信息與熵,你想知道的都在這裏了