第一個代碼
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