(一)Kotlin—基础语法

(一)Kotlin—基础语法


文章目录

  • (一)Kotlin——基础语法
    • 1. 变量
    • 2. 运算符
      • 2.1 算数运算符
      • 2.2 位运算符
      • 2.3 逻辑运算符
    • 3. 流程控制
      • 3.1 if-else
      • 3.2 when
      • 3.3 for
      • 3.4 while
      • 3.5 do-while

(一)Kotlin——基础语法

本教程不适合完全零基础的学习者,不会详细解释变量、类型、循环、条件判断等通用编程概念。它更适合已经有 Java 基础、正在快速入门 Kotlin 的用户。文档只保留常用语法和简单示例,帮助你快速建立 Kotlin 与 Java 之间的语法对应关系。

1. 变量

Kotlin 中变量主要分为两类:

关键字含义类比 Java
val只读变量,赋值后不能重新赋值类似final变量
var可变变量,可以重新赋值普通变量
var变量名称:数据类型val变量名称:数据类型// 示例:vala:Int=10varb:Int=20b=30

Kotlin 支持类型推断,能推断出类型时可以省略类型声明:

vala=10// 推断为 Intvalname="Tom"// 推断为 String

整型

类型大小(位)最小值最大值
Byte8-128127
Short16-3276832767
Int32-2,147,483,648 (-2^31)2,147,483,647(2^31-1)
Long64-9,223,372,036,854,775,808 (-2^63)9,223,372,036,854,775,807(2^63 - 1)
funmain(){valage:Int=18valcount=100valdistance:Long=10000000000Lprintln(age)// 18println(count)// 100println(distance)// 10000000000}

浮点型

类型大小(位)符号与尾数位数小数位数
Float32246-7
Double645315-16
funmain(){valprice:Double=19.99valscore:Float=98.5Fprintln(price)// 19.99println(score)// 98.5}

布尔型

类型
Booleantruefalse
funmain(){valisLogin:Boolean=truevalisVip=falseprintln(isLogin)// trueprintln(isVip)// false}

字符型

类型含义示例
Char单个字符,使用单引号'A''中'
funmain(){valc:Char='A'println(c)// A}

字符串类型

类型含义示例
String字符串,使用双引号"Hello Kotlin"
funmain(){vala=10valtext="这是拼接的值$a"// $ 是模板表达式,会把变量值拼接到字符串中valtext2="计算结果:${a+20}"// 表达式需要用 ${}println(text)// 这是拼接的值10println(text2)// 计算结果:30}

2. 运算符

2.1 算数运算符

运算符含义示例
+加法a + b
-减法a - b
*乘法a * b
/除法a / b
%取余a % b
++自增a++
--自减a--
funmain(){vara=10valb=3println(a+b)// 13println(a-b)// 7println(a*b)// 30println(a/b)// 3println(a%b)// 1a++println(a)// 11}

2.2 位运算符

Kotlin 没有 Java 中的<<>>&|这类位运算符写法,而是使用函数形式。位运算只适用于IntLong类型。

Kotlin 写法含义Java 类比
a shl b有符号左移a << b
a shr b有符号右移a >> b
a ushr b无符号右移a >>> b
a and b按位与a & b
a or b按位或`a
a xor b按位异或a ^ b
a.inv()按位取反~a
funmain(){vala=8// 二进制:1000valb=2println(ashlb)// 32println(ashrb)// 2println(aandb)// 0println(aorb)// 10println(axorb)// 10println(a.inv())// -9}

2.3 逻辑运算符

运算符含义示例
==判断值相等a == b
!=判断值不相等a != b
<小于a < b
>大于a > b
<=小于等于a <= b
>=大于等于a >= b
in判断是否在范围内x in 1..10
!in判断是否不在范围内x !in 1..10
&&逻辑与a > 0 && b > 0
``
!逻辑取反!flag
funmain(){vala=10valb=20valflag=trueprintln(a==b)// falseprintln(a<b)// trueprintln(ain1..10)// trueprintln(a>0&&b>0)// trueprintln(!flag)// false}

3. 流程控制

Kotlin 中ifwhen、循环语句的基本思想和 Java 类似。如果分支或循环体只有一行代码,可以省略{};如果有多行代码,必须保留{}

3.1 if-else

if(条件判断){条件成立时执行的代码}else{条件不成立时执行的代码}

Kotlin 中if-else可以作为表达式使用,即可以直接返回结果。

funmain(){valscore=85valresult=if(score>=60){"及格"}else{"不及格"}println(result)// 及格}

3.2 when

when类似 Java 中的switch,但功能更强,适合多分支判断。

when(目标){匹配值1->代码 匹配值2->代码else->代码}
funmain(){vallevel=2valresult=when(level){1->"初级"2->"中级"3->"高级"else->"未知等级"}println(result)// 中级}

when也可以判断范围:

funmain(){valscore=85valresult=when(score){in90..100->"优秀"in60..89->"及格"else->"不及格"}println(result)// 及格}

3.3 for

for(遍历出来的单个目标变量in可遍历目标){循环体}
funmain(){for(iin1..3){println("当前值:$i")// 当前值:1、当前值:2、当前值:3}}

指定步长:

funmain(){for(iin1..10step2){println(i)// 1、3、5、7、9}}

倒序遍历:

funmain(){for(iin10downTo1){println(i)// 10、9、8、7、6、5、4、3、2、1}}

不包含结束值:

funmain(){for(iin0until5){println(i)// 0、1、2、3、4}}

3.4 while

while先判断条件,条件成立才执行循环体。

while(循环条件){循环体}
funmain(){vari=100while(i>0){println(i)// 100、50、25、12、6、3、1i/=2}}

3.5 do-while

do-while会先执行一次循环体,再判断条件。因此不管条件是否成立,循环体至少执行一次。

do{循环体}while(循环条件)
funmain(){vari=0do{println("Hello World!")// 输出 10 次 Hello World!i++}while(i<10)}

✨✨✨