Kotlin快速入门(三)函数进阶、异常处理、从键盘获取字符串、递归

前言:作为一个安卓开发的老鸟,一步步从eclipse到AS开发安卓app,再到NDK开发,不断的更新,不断的学习,现如今Google把安卓的第一开发语言换成了Kotlin,所以我们也要紧跟Google步伐,转战kotlin,接下来我会带领大家快速入门kotlin开发。


1.1函数进阶(求圆和矩形的面积)

val pi = 3.141592f //val表示对象是常量,不能更改

//fun 函数名字(参数高,参数宽)返回Float型
fun getRectangleS(height:Float, width:Float):Float{
	return height*width
}

fun getCircularS(PI:Float = pi, radius:Float):Float{
	return PI*radius*radius
}

//main函数
fun main(args:Array<String>){
	var s1 = getRectangleS(10.5f,20.6f)
	println(s1)
	
	var s2 = getCircularS(radius = 3.5f)
	println(s2)
	
}

1.2函数的其他写法

fun main(args: Array<String>){
	//函数的普通形式
	var result = add(3, 5)
	println(result)
	
	//函数的其他形式
	var i = {x:Int, y:Int -> x+y}//和C语言中函数的指针很类似
	var result2 = i(3, 5)
	println(result2)
	
	//函数的其他形式
	var j:(Int, Int)->Int = {x,y -> x+y}
	var result3 = j(3, 5)
	println(result3)
	
}

fun add(x:Int, y:Int):Int = x+y

2.字符串和数字的转换

fun main(args: Array<String>){
	var a = "13"
	var b = 13
	
	a = b.toString()//把b数字转换成字符串
	
	b = a.toInt()//把a字符串转换成int
	
	var c = "a3"
	b = c.toInt()//会出现错误
}

3.从键盘接收输入内容

fun main(args:Array<String>){
	println("请输入第一个数字")
	var numberStr1 = readLine()
	
	println("请输入第二个数字")
	var numberStr2 = readLine()
	
	var num1:Int = numberStr1!!.toInt()
	var num2:Int = numberStr2!!.toInt()
	
	println("${num1} + ${num2} = ${num1 + num2}")
	
}

4.从键盘接收输入内容+异常处理+while循环

fun main(args: Array<String>) {
	while (true) {
		println("请输入第一个数字")
		var numberStr1 = readLine()

		println("请输入第二个数字")
		var numberStr2 = readLine()

		try {
			var num1: Int = numberStr1!!.toInt()
			var num2: Int = numberStr2!!.toInt()

			println("${num1} + ${num2} = ${num1 + num2}")
		} catch (e: Exception) {
			println("你输入的有问题")
		}
	}
}

5.1普通递归

fun main(args:Array<String>){
	var num = fact(4)
	println(num)
}


fun fact(number:Int):Int{
	if(number == 1){
		return 1
	}else {
		return number * fact(number - 1)
	}
}

5.2递归累加

fun main(args:Array<String>){
	var num = ollAdd(4)
	println(num)
}


fun ollAdd(number:Int):Int{
	if(number == 1){
		return 1
	}else {
		return number + ollAdd(number - 1)
	}
}

5.3递归累加

fun main(args:Array<String>){
	var result = 0
	println(ollAdd1(100,result))
}


tailrec fun ollAdd1(num:Int, result:Int):Int{
	println("计算机第 ${num}次运算,result=${result}")
	if(num == 0){
		return 1
	}else {
		return ollAdd1(num-1, result+num)
	}
}


kotlin基础语法结束,接下来开始kotlin的面向对象。

发布了105 篇原创文章 · 获赞 74 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_32306361/article/details/103831983