作为新生的,不用背负任何历史包袱的全新语言,仓颉充分吸收了过去数十年来众多编程语言之长,原生智能化、天生全场景、高性能、强安全。作为华为鸿蒙系统的平台语言,仓颉拥有良好的发展潜力和前景,极有可能成为第一款形成世界级影响的国产编程语言。青少年现在学习仓颉,就是在投资未来 !

版权声明

作者:重庆大学 陈波

本文可以在互联网上自由转载,但必须注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。

2.2 变量

  计算机进行计算和数据处理的过程中必然会产生大量的计算结果以及中间结果。程序通常使用变量(variable)来存储上述计算结果以及中间结果。

🚠 物见其然

  环保志愿者朵朵在阿拉善腾格里沙漠工作了一整天,种下了8行7列又2棵的梭梭树,问这些梭梭树共有多少棵?按照本书1.6节介绍的方法新建一个名为Trees的仓颉项目,并将其中的主程序文件main.cj修改如下:

1
2
3
4
5
6
7
8
9
10
11
//Project - Trees
package Trees

main(): Int64 {
var r:Int32 = 8
var c:Int32 = 7
var n = r*c
n = n + 2
println("朵拉种了${n}棵树.")
return 0
}

上述代码执行结果为:

1
朵朵种了58棵树.

  上述代码的第1行以“//”开头,为注释(comment)。注释是程序员写给自己或者同事看的,编译器在编译程序时会自动忽略注释。

📇 说明——

  示例代码的首行注释给出了项目在随书代码中的位置。于本例而言,读者可以在随书代码的CH2(第2章)子目录下找到名为Trees的项目文件夹。

  代码中的r、c、n都是变量,每个变量可以存储一个特定类型的值。在程序运行过程中,变量的值可以随时修改。本例中的程序是顺序执行的,第5行代码最先被执行,然后是第6行,直至第10行结束。

▶第5行:定义了一个名称为r,类型为Int32的变量,并通过“=”号操作符将其赋值(assignment)为8。该行执行完毕后,变量r存储着整数8。

image-20241003214622142

图2-2 变量r的定义

  图2-2以本例中变量r为例,描述了仓颉中定义变量的通用语法。关键字(keyword)var源自英文variable,表示开始定义一个变量;接下来是变量名;紧随其后的是冒号以及数据类型;最后是赋值操作符“=”以及初始值。

  本例中,Int32表示由32个二进制比特(bit)▲组成的有符号整数▲,变量r的类型被指定为Int32,意味着其只能存储Int32类型的值,而不能存储其它值,比如小数。

▶第6行:以同样的语法定义变量c,其值初始化为整数7。

▶第7行:定义变量n,并初始化其值为变量r与变量c的乘积。这里的“*”号表示乘法操作,由于r和c在先前的代码中分别被“赋值”为8和7,所以在本行代码被执行时,r*c的结果为56,这个结果将通过赋值操作符,也就是等号,传递给变量n保存。请注意,本行代码并未显式指定变量n的类型,编译器将根据r*c的结果类型推断决定n的类型。由于r和c都是Int32类型,因此r*c的结果也是Int32类型,此处编译器推断决定n的类型为Int32。

🚸 注意——

  在数学语言中,3a表示3与a的乘积,但在程序里,3*a才表示两者之积。同理,程序中的rc也不代表r与c的积,而是一个名为rc的标识符▲。

▶第8行:代码的执行分为两步。(1)首先计算 n + 2的和。此时,n值为56,故n + 2等于58;(2)值58通过赋值操作符传递给n。该步完成后,n的值由56变成了58。

▶第9行:使用println()函数打印输出计算结果。此处使用了字符串插值语法。在向终端屏幕输出内容前,仓颉会将字符串”朵拉种了${n}棵树.”中的${n}部分替换成变量n的值,从而形成一个不包含插值项的完整字符串,然后再传递给println()函数。如执行结果第1行所示,在最终输出结果中,插值项${n}被替换成了变量n的值,即58。一个字符串插值项的基本语法格式为:${变量名}。

请注意,println()函数在输出完字符串内容后,会补充输出一个换行符,从而形成了执行结果的第2行,它是一个空行。

▶第10行:main()函数返回整数0作为结果。该行代码的执行意味着main()函数的运行结束,同时也意味着整个程序运行的终结。如前节所述,这个整数0最后被提交给操作系统,表示程序正确无误地运行结束。

海洋饼干叔叔的仓颉语言学习笔记将持续更新… 敬请期待。


欢迎支持海洋饼干叔叔系列程序设计教材,案例、配套资源丰富,实践性强,高等教育出版社出版。

高校教学同行如果需要样书,或者索取教学支持资源, 请联系公众号或者海洋饼干叔叔本人。

《Python编程基础及应用》 《Python编程基础及应用实验教程》 《C++编程基础及应用》
book1 实验书图片 Cpp小尺寸