第一个代码
hello world
//主函数的基本格式
fun main(args: Array<String>) {//接受参数名是:args,数据类型字符串
println("hello world")
//打印语句,语句后的分号可写可不写
}
变量与输出
变量与容器
var 用来声明变量
不同类型的数据,最好是放在对应的容器中.
//变量的声明与使用
fun main(args: Array<String>) {//函数入口,固定写法
var name ="李四"
name ="lll" // var用于声明变量,kotlin会自动匹配类型
// name = 123 输入这个语句会存在报错 ,这个name变量已经是“String”类型了。
// 现在放入123整数 自然报错了
println(name)
}
常见容器的类型
类型名 | 存储值范围 | Bit(位数) |
---|---|---|
Byte | 整数 -128~127 | 8bit |
Short | 整数 - 32768~32767 | 16bit |
Int | 整数 -2147483648~1247483647 | 32bit |
Long | 整数 19位左右的正负数(-9223372036854775807~9223372036854775807) | 64bit |
Float | 小数,小数点可以精确到6位 | |
Double | 小数,小数点可以精确到15-16位 | |
String | 字符串 ,用“”双引号 引起的都可以存 |
类型推断
Kotlin 会自动根据赋值提供相应容器
当然 也可以使用显式的指定数据类型
//kotlin 会自动根据赋值提供相应容器 但是赋值后,再为其赋其他的值,就可能会报错
fun main(args: Array<String>) {
var i=18
i=19
// i=999999999999 //此时会报错,因为这个数已经超过了int的存值范围
var j=999999999999 //此时j就是存放的长整型的容器了
var s="String"
var k:Int =99 // 这是允许显示规定类型的
// var t:Byte=128 因为Byte最大是127 赋值128会发生报错
}
常量
用val 关键字表示,赋值后不可以在更改它的值 ,表示这个是只读的
val PI=3.1415926
// PI=3.14 会发生报错
变量的取值范围
上面的表格已经写出来了,这里是在代码中找到的
fun main(args: Array<String>) {
val aByte:Byte=Byte.MAX_VALUE
val bByte:Byte=Byte.MIN_VALUE
println("Byte的最大值:"+aByte)
println("Byte的最小值:"+bByte)
val aLong:Long=Long.MAX_VALUE
val bLong:Long=Long.MIN_VALUE
println("Long的最大值:"+aLong)
println("Long的最小值:"+bLong)
val aDouble:Double=Double.MAX_VALUE
val bDouble:Double=Double.MIN_VALUE
println("Double的最大值:"+aDouble)
println("Double的最小值:"+bDouble)
var aInt:Int=0b0011 //用二进制赋值0b
println(aInt)
}
打印的结果如下:
Byte的最大值:127
Byte的最小值:-128
Long的最大值:9223372036854775807
Long的最小值:-9223372036854775808
Double的最大值:1.7976931348623157E308
Double的最小值:4.9E-324
3
函数
Mian函数
程序的入口函数,最先运行。
打印菱形
fun main(args: Array<String>) {
//直接打印法....
println(" *")
println(" ***")
println(" *****")
println("*******")
println(" *****")
println(" ***")
println(" *")
}
打印结果
*
***
*****
*******
*****
***
*
//感觉很蠢的一个例子
//下面的这些函数没得返回值,也没有参数
fun main(args: Array<String>) {
//调用函数 实现模块化打印
printoneStar()
printthreeStar()
printfiveStar()
printSevenStar()
printfiveStar()
printthreeStar()
printoneStar()
}
fun printoneStar(){
println(" *")
}
fun printthreeStar(){
println(" ***")
}
fun printfiveStar(){
println(" *****")
}
fun printSevenStar(){
println("*******")
}
当然结果同上
Boolean 运算
true -真; false -假;
fun main(args:Array<String>){
var num3=Math.sqrt(5.0)-Math.sqrt(4.0)
//这里使用了数学类中的开方
var num4=Math.sqrt(4.0)-Math.sqrt(3.0)
println(num3>num4)
var num5=Math.pow(2.0,100.0)
//使用了数字类中的pow函数
var num6=Math.pow(3.0,74.0)
//需要传入两个DOuble类型的参数 同时返回一个double
println(num5>num6)
println(num5)
println(num6)
}
运行结果
false
false
1.2676506002282294E30
2.0275559590445257E35
//这个函数 a,b是两个参数,都是Int类型的
//返回值也是Int类型的 小括号外的:后面就是返回值类型
fun Add(a:Int,b:Int):Int
{
return a+b
}
var num1=2
var num2=3
println(Add(num1,num2))
打印结果
5
函数加强
函数可以理解成是一个或者一组功能的组合
Kotlin函数编写规则
fun 函数名(参数名:参数类型):返回值类型{
函数体
}
Array:表示字符串数组
Demo:简易计算器
fun main(args:Array<String>){
var a=8
var b=2
println("a+b="+Plus(a,b))
println("a-b="+Sub(a,b))
println("a*b="+Mutl(a,b))
println("a/b="+Devide(a,b))
}
//加法
fun Plus(a:Int,b:Int):Int{
return a+b
}
//减法
fun Sub(a:Int,b:Int):Int{
return a-b
}
// 乘法
fun Mutl(a:Int,b:Int):Int{
return a*b
}
//除法
fun Devide(a:Int, b:Int ):Int{
return a/b
}
运行结果
a+b=10
a-b=6
a*b=16
a/b=4