Kotlin学习笔记(黑马2018教程)001--匿名函数、数据转换,人机交互,异常,递归、尾巴递归优化
1、具名和非具名参数package com.fengrayimport java.util.TreeMapval Pi=3.1425ffun main(args:Array<String>){var area=mianji(r=32.22f)//不具名println(area)area=mianji(Pi,33.3f)println(area)}fun mianji(PI:Float=
·
1、具名和非具名参数
package com.fengray
import java.util.TreeMap
val Pi=3.1425f
fun main(args:Array<String>){
var area=mianji(r=32.22f)//不具名
println(area)
area=mianji(Pi,33.3f)
println(area)
}
fun mianji(PI:Float=Pi,r:Float):Float{
return PI*r*r
}
打印
3262.3186
3484.6868
2、字符串与数字的转换
package com.fengray
import java.util.TreeMap
val Pi=3.1425f
fun main(args:Array<String>){
var a="23"
var b=23
var c=b.toString();
println(a+c)
var d=a.toInt()+b
println(d)
}
打印
2323
46
3、人机交互(读入字符)
package com.fengray
fun main(args:Array<String>){
println("请输入第一个数字")
var num1str=readLine()
println("请输入第er个数字")
var num2str=readLine()
var num1:Int=num1str!!.toInt()//空安全,类似swift里面的可空
var num2:Int=num2str!!.toInt()//两个感叹号确保数据一定不为空
println("${num1}+${num2}=${num1+num2}")
}
打印
请输入第一个数字
33
请输入第er个数字
45
33+45=78
4、异常处理
package com.fengray
fun main(args:Array<String>){
while(true){
println("请输入第一个数字")
var num1str=readLine()
println("请输入第er个数字")
var num2str=readLine()
try{
var num1:Int=num1str!!.toInt()//空安全,类似swift里面的可空
var num2:Int=num2str!!.toInt()//两个感叹号确保数据一定不为空
println("${num1}+${num2}=${num1+num2}")
}catch(e:Exception){
println("输入的数据有误,请检查数据格式")
}
}
}
打印
请输入第一个数字
sd
请输入第er个数字
3
输入的数据有误,请检查数据格式
请输入第一个数字
5、递归
package com.fengray
fun main(args:Array<String>){
var num=8
println(jiechen(num))
}
fun jiechen(num:Int):Int{
if(num==1){
return 1
}else{
return num* jiechen(num-1)
}
}
打印
40320
6、尾递归优化
package com.fengray
fun main(args:Array<String>){
var resualt=0
println(add(5,resualt))
}
tailrec fun add(num:Int,resualt:Int):Int{//tailrec是尾递归优化的关键字
println("计算机的第${num}次运算,reusalt的值为${resualt}")
if(num==0){
return 1
}else{
return add(num-1,resualt+num)
}
}
打印:
计算机的第5次运算,reusalt的值为0
计算机的第4次运算,reusalt的值为5
计算机的第3次运算,reusalt的值为9
计算机的第2次运算,reusalt的值为12
计算机的第1次运算,reusalt的值为14
计算机的第0次运算,reusalt的值为15
1
更多推荐

所有评论(0)