fun main(args: Array<String>) {
//不用具名参数var circleperimeter01 = getCirclePerimeter(30.05f)
println(circleperimeter01)
var volume01 = getVolume(50.02f,30.2f)
println(volume01)
var superficialarea01 = getSuperficialArea(50.09f)
println(superficialarea01)
//使用具名参数var circleperimeter02 = getCirclePerimeter(d = 30.05f)
println(circleperimeter02)
var volume02 = getVolume(r = 50.02f,h = 30.2f)
println(volume02)
var superficialarea02 = getSuperficialArea(r = 50.09f)
println(superficialarea02)
}
//定义一个常量
val Pi = 3.1415926f
//2. 圆的周长 C = 2πr = πd r:半径 d:直径 周长:perimeter 常量写在参数的后面,用=号连接 Pi就是默认参数
fun getCirclePerimeter(d:Float,PI:Float= Pi):Float = d*PI
//3. 圆柱体体积 V = πrrh = sh s为圆柱的底面积 h为圆柱的高 常量写在参数的后面,用=号连接 Pi就是默认参数
fun getVolume(r:Float,h:Float,PI:Float= Pi):Float = PI*r*r*h
//4. 球表面积公式 S = 4πrr r:半径 常量写在参数的后面,用=号连接 Pi就是默认参数
fun getSuperficialArea(r:Float,PI:Float = Pi):Float = 4*PI*r*r
2. 字符串和数字之间的转换
fun main(args: Array<String>) {
var a = "13"var b = 13
b = a.toInt()
a = b.toString()
var c = "z007"
b = c.toInt() //这里会报错,因为c字符串里面既有z字母,又有007数字,所以这种情况下不能采用toInt转换为数字
}
3. 人机交互
展示的是从键盘录入数据,然后计算机转换为int类型,然后执行相加的计算
!!两个感叹号表示一定不为空
fun main(args: Array<String>) {
println("请输入第一个数字:")
var num1str = readLine();
println("请输入第二个数字:")
var num2str = readLine();
var num1 = num1str!!.toInt()
var num2 = num2str!!.toInt()
println("${num1}+${num2}=${num1+num2}")
}
4. 异常处理
fun main(args: Array<String>) {
while(true){
println("请输入第一个数字:")
var num1str = readLine();
println("请输入第二个数字:")
var num2str = readLine();
try{
var num1 = num1str!!.toInt()
var num2 = num2str!!.toInt()
println("${num1}+${num2}=${num1+num2}")
}catch(e:Exception){
println("输入的数据有问题,请重新输入")
}
}
}
5. 递归
以阶乘的形式讲递归:5的阶乘就是5*4*3*2*1 也就是5*4的阶乘
fun main(args: Array<String>) {
var result = factorial(3)
println(result)
}
fun factorial(num:Int):Int{
if(num==1){
return1
}else{
returnnum*factorial(num-1)
}
}
输入很大的数,计算机承受不了,错误得到的结果是0,所以现在借助BigInteger。
import java.math.BigInteger
fun main(args: Array<String>) {
var result = BigInteger("10")
println(factorial(result))
}
fun factorial(num:BigInteger):BigInteger{
if(num==BigInteger.ONE){
return BigInteger.ONE
}else{
returnnum*factorial(num-BigInteger.ONE)
}
}