当前位置:网站首页>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
- C#图像差异对比:图像相减(指针法、高速)
- Information and entropy, all you want to know is here
- 信息与熵,你想知道的都在这里了
- C#绘制带控制点的Bezier曲线,用于点阵图像及矢量图形
- Multiple linear regression (sklearn method)
- 一题多解,ASP.NET Core应用启动初始化的N种方案[上篇]
- Newton iterative method (solving nonlinear equations)
- Codeforces round 684 (Div. 2) e - green shopping (line segment tree)
- Codeforces Round #648 (Div. 2) E.Maximum Subsequence Value
猜你喜欢

AUTOSAR从入门到精通100讲(103)-dbc文件的格式以及创建详解
![[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

Beautiful soup parsing and extracting data

Hosting environment API

22-07-04 西安 尚好房-项目经验总结(01)

Composition of applet code

Node collaboration and publishing

Applet data attribute method

Huber Loss

Huber Loss
随机推荐
Causes and appropriate analysis of possible errors in seq2seq code of "hands on learning in depth"
How many checks does kubedm series-01-preflight have
Applet (global data sharing)
What is a firewall? Explanation of basic knowledge of firewall
C # compare the differences between the two images
Hosting environment API
Svgo v3.9.0+
Solutions of ordinary differential equations (2) examples
Return of missing persons
TF coordinate transformation of common components of ros-9 ROS
Install the CPU version of tensorflow+cuda+cudnn (ultra detailed)
信息與熵,你想知道的都在這裏了
Programming implementation of subscriber node of ROS learning 3 subscriber
c语言指针深入理解
交通运输部、教育部:广泛开展水上交通安全宣传和防溺水安全提醒
Wxss template syntax
Editor use of VI and VIM
信息与熵,你想知道的都在这里了
Codeworks round 681 (Div. 2) supplement
ROS learning 4 custom message