首页 安卓& Kotlin Books Kotlin学徒

2
表达式,变量& Constants 由伊琳娜加拉塔撰写

在第二章中,您将学习一些基础知识。您将了解代码首先工作。然后,通过学习一些基础知识,如代码注释,算术运算,常量和变量,您将开始冒险进入Kotlin。这些是任何语言的一些基本构建块,Kotlin没有什么不同。

首先,您将涵盖计算机的基本工作,因为在您进入更复杂的编程方面之前,它真的付出了基础。

计算机如何运作

当您听到它时,您可能不相信它,但计算机并不是自己的。计算机的力量都是从像你和我那样编程的人。如果你想成功利用计算机的力量 - 大概是你这样做,如果你正在读这本书 - 了解计算机如何工作的重要性。

您也可能让您感到惊讶,以了解计算机本身是相当简单的机器。在电脑的核心是一个 中央处理器 (中央处理器)。这基本上是一个数学机器。它执行数字上的添加,减法和其他算术操作。当您操作计算机时,您所看到的一切都是基于CPU嘎吱嘎吱的数字,每秒数百万次。这不是惊人的吗?

中央处理器存储它在名为的小型内存单元中起作用的数字 寄存器。 CPU能够将数字读取到计算机主内存中的寄存器,称为 随机存取存储器 (内存)。它还能够将存储在寄存器中的数字写回RAM。这允许CPU与大量数据一起工作,该数据不会适合寄存器银行。

这是它的工作图:

由于CPU将RAM从RAM拉到其寄存器中,它使用其数学单元中的这些值并将结果存储在另一个寄存器中。

每次CPU都会添加,减法,从RAM读取或写入RAM,它正在执行单个 操作说明。每个计算机程序通常由数千到数百万个指令组成。一个复杂的计算机程序,如操作系统,是IOS,Android,MacOS,Windows或Linux(是的,他们也是计算机程序!),可能总共有数百万的指令。

它完全可以编写个人指示来告诉计算机该做什么,但对于所有简单的程序来说,这将是非常耗时和繁琐的。这是因为大多数计算机程序的目标是做得多于简单的数学 - 计算机程序,让您浏览互联网,操纵图像,并允许您与朋友聊天。

你写的不是写下个别指示 代码 在一个特定的 编程语言,在您的案件中将是Kotlin。此代码通过一个名为a的计算机程序进行 编译器,将代码转换为指令CPU知道如何执行。您写的每一行代码将变为许多指示 - 有些线路最终可能会成为几十个指令!

在Kotlin的情况下,它的起源是一种语言 Java虚拟机 或者 JVM.,编译器和操作系统之间存在额外的层。 Kotlin编译器创建了所谓的东西 字节码,它在JVM上运行并沿途转换为本机代码。 Kotlin始于JVM,但现在可以将Kotlin直接编译为本机代码,因为您将在书中看到。

代表数字

如您所知,数字是计算机的面包和黄油,它所做的一切的基础。无论您发送到编译器的信息最终都会成为一个数字。例如,文本块内的每个字符由数字表示。您将在第3章“类型”中了解有关此内容的更多信息&操作,“其中删去类型,包括 ,用于一块文本的计算机术语。

图像也不例外。在计算机中,每个图像也由一系列数字表示。将图像分为数千个,甚至数百万,称为 像素,每个像素是纯色。如果您仔细观察计算机屏幕,您可能能够制作这些块。这是除非您具有特别高分辨率的显示器,否则像素令人难以置信的小!这些固体颜色像素中的每一个通常由三个数字表示:一个用于红色的量,一个用于绿色的量,一个用于蓝色的量。例如,完全的红色像素将是100%红色,0%绿色和0%蓝色。

中央处理器使用的数字与您习惯的人有所不同。当您在日常生活中处理数字时,您可以与他们一起工作 基地10.,否则被称为 十进制 系统。使用了这么长时间的这个数字系统,你直观地了解它是如何工作的。这样你就可以欣赏到CPU的观点,考虑到基础10的工作原理。

十进制或基数10号 423 包含 三个单位, 两个数十四百:

在基础10系统中,数字的每个数字可以具有0,1,2,3,4,5,6,7,8或9的值,为每个数字提供总共10个可能的值。是的,这就是为什么它被称为基地10!

但每个数字的真实值取决于其数量内的位置。从右到左移动,每个数字都会增加10的倍增。所以乘法器为0到0的电源为0,即1.移动到左侧,下一个乘数是10到10 1的功率为10,即10.再次移动到左侧,下一个乘数是2的10,即2的功率为100.等等。

这意味着每个数字都有一个值的值为它的右边的数量。数字 423 等于以下内容:

(0 * 1000) + (4 * 100) + (2 * 10) + (3 * 1) = 423

二进制数字

因为您已被培训在基地10中运营,所以您不必考虑如何阅读大多数 - 它感觉非常自然。但到电脑,基地10太复杂了!电脑很简单,还记得吗?他们喜欢与基地2合作。

Base 2 经常被称为 二进制,你可能听说过的。因此,BASE 2只有两个选项为每个数字:0或1。

几乎所有现代计算机都使用二进制,因为在物理级别,它最容易处理每个数字的两个选项。在数字电子电路中,这主要是包括计算机的内容,电压的存在是1,并且缺席是0 - 基座2!

笔记: 使用三元数字系统有真实和想象的计算机,其具有三个可能的值而不是两个。计算机科学家,工程师和专用黑客继续探索基座3计算机的可能性。看 //en.wikipedia.org/wiki/Ternary_computerhttp://hackaday.com/tag/ternary-computer/.

这是基本2号1101的表示:

在基座10号系统中,位置值在底座2中增加10:1,10,100,1000等,它们增加了2:1,2,4,8,16,等等。一般规则是通过增加基数的增加的功率来将每个数字乘以 - 在这种情况下,2 - 从右移动到左侧。

因此,远右位代表(1 *2⁰),等于(1 * 1),即左侧的下一个数字表示(0 *2¹),等于(0 * 2),即0。在上图中,您可以在块的顶部看到2的电源。

换句话说,2的每个力量为(1)或不是(0)作为二进制数的组件。二进制数的十进制版本是构成该数字的2的所有权力的总和。因此二进制数1101等于:

(1 * 8) + (1 * 4) + (0 * 2) + (1 * 1) = 13

如果您想将基本10号423转换为二进制文件,则只需将423分解为其组件功率2.您将结束以下内容:

(1 * 256) + (1 * 128) + (0 * 64) + (1 * 32) + (0 * 16) + (0 * 8) + (1 * 4) + (1 * 2) + (1 * 1) = 423

由于您可以通过扫描上述等式中的二进制数字来看,所产生的二进制数为110100111.您可以通过执行数学来证明这是等于423!给予二进制数的每个数字的计算机术语是a 少量 (“二进制数字”的收缩)。八个比特弥补了一个 字节。四个位被称为a 蚕食,扮演甚至老学校计算机科学家的文字的戏剧有一种幽默感。

计算机有限的内存意味着它通常可以处理直到一定长度的数字。例如,每个寄存器通常为32或64位,这就是我们谈到32位和64位CPU的原因。

这refore, a 32-bit CPU can handle a maximum base-number of 4,294,967,295, which is the base 2 number 11111111111111111111111111111111. That is 32 ones—count them!

计算机可以处理大于CPU的最大值,但计算必须以特殊和更长的方式分割并管理,就像您在学校所执行的长乘法一样。

十六进制数字

正如您可以想象的那样,使用二进制数字可以变得非常繁琐,因为它可能需要很长时间才能编写或键入它们。出于这个原因,在计算机编程中,我们经常使用另一种名称的数字格式 十六进制, 或者 十六进制 简而言之。这是 基地16..

当然,用于数字不超过16个不同的数字;只有10.补充这些,我们使用前六个字母, a 通过 f.

它们相当于如此如下十进制数字:

  • a = 10
  • b = 11
  • c = 12
  • d = 13
  • e = 14
  • f = 15

以下是使用与以前相同格式的基本16示例:

首先要注意,您可以使十六进制数字看起来像单词。这意味着你可以有一点乐趣。

现在每个数字的值都会引用16的权力。以与以前相同的方式,您可以将此编号转换为十进制:

(12 * 4096) + (0 * 256) + (13 * 16) + (14 * 1) = 49374

您将字母转换为十进制等价物,然后执行通常的计算。

但为什么要打扰这个?

Hexadecimal is important because each hexadecimal digit can represent precisely four binary digits. The binary number 1111 is equivalent to hexadecimal f. It follows that you can simply concatenate the binary digits representing each hexadecimal digit, creating a hexadecimal number that is shorter than its binary or decimal equivalents.

For example, consider the number c0de from above:

c = 1100
0 = 0000
d = 1101
e = 1110

c0de = 1100 0000 1101 1110

This turns out to be rather helpful, given how computers use long 32-bit or 64-bit binary numbers. Recall that the longest 32-bit number in decimal is 4,294,967,295. In hexadecimal, it is ffffffff. That’s much more compact and clear.

代码如何工作

计算机有很多限制,并自己,他们只能做少数东西。计算机程序员通过编码增加的权力是按正确的顺序将这些小东西放在一起,以产生更大的东西。

编码就像写作食谱一样。您可以组装成分(数据),并为计算机提供如何使用它们的逐步配方。

这是一个例子:

Step 1. Load photo from hard drive.
Step 2. Resize photo to 400 pixels wide by 300 pixels high.
Step 3. Apply sepia filter to photo.
Step 4. Print photo.

这就是所知道的 伪代码。它不是用有效的计算机编程语言编写的,但它代表了 算法 你想用的。在这种情况下,算法拍摄照片,调整它,应用过滤器,然后打印它。它是一种相对简单的算法,但它是一种算法!

Kotlin代码就是这样的:计算机的逐步列表。这些指令在通过这本书阅读时会变得更加复杂,但原理是相同的:你只是告诉电脑要做什么,一步一步。

每个编程语言都是表达这些步骤的高级,预先义的方式。编译器知道如何解释您编写的代码并将其转换为CPU可以执行的指令。

有许多不同的编程语言,每个都具有自己的优点和缺点。 Kotlin是一种非常现代的语言。它包含许多其他语言的优势,同时熨烫一些弱点。多年来,程序员也将回顾kotlin,也是老人和硬皮。但是现在,它是一种非常令人兴奋的语言,因为它很快就会发展。

这是计算机硬件,数字表示和代码的简要介绍,以及它们如何共同努力创建现代程序。在一个部分中涵盖的很多!现在是时候了解你用来在Kotlin的工具那样了解,就像你跟随这本书一样。

kotlin入门

现在你知道计算机如何工作,是时候开始写一些kotlin了!

您可能希望跟随您自己的Intellij Idea项目。只需使用第一章中的指令即可创建一个,并在您离开时键入代码。

首先是有助于您组织代码的东西。阅读!

代码评论

Kotlin编译器从源代码生成字节码或可执行代码。要完成此操作,它使用详细的规则您将在本书中了解。有时这些细节可能会掩盖大局 为什么 您将代码写成了某种方式,甚至写了您正在解决的问题。为了防止这一点,文件记录你所写的内容是好的,这让人能够理解你的工作。毕竟,下一个人可能是你的未来。

像大多数其他编程语言一样,Kotlin允许您通过使用所谓的内容来记录代码 评论。这些允许您直接沿着编译器忽略的代码侧面写下任何文本。

写评论的第一种方法是如此:

// This is a comment. It is not executed.

这是一个 单行评论.

您可以堆叠这些堆叠,以便您编写段落:

// This is also a comment.
// Over multiple lines.

但是,有更好的方法来编写跨越多行的评论。喜欢:

/* This is also a comment.
   Over many..
   many...
   many lines. */

这是一个 多线评论. The start is denoted by /* 和 the end is denoted by */. Simple!

Kotlin还允许您嵌套评论,如:

/* This is a comment.

 /* And inside it
 is
 another comment.
 */

 Back to the first.
 */

This might not seem particularly interesting, but it may be if you have seen other programming languages. Many do not allow you to nest comments like this as when it sees the first */ it thinks you are closing the first comment. You should use code comments where necessary to document your code, explain your reasoning, or simply to leave jokes for your colleagues.

打印出来

It’s also useful to see the results of what your code is doing. In Kotlin, you can achieve this through the use of the println command.

println 将输出任何您想要的东西 安慰.

例如,考虑以下代码:

println("Hello, Kotlin Apprentice reader!")

这将为控制台输出一个很好的消息,如下所示:

您可以使用该控制台隐藏或显示控制台 底部的按钮突出显示上图中的红色椭圆形。

算术运算

当您拍摄一个或多个数据并将它们转换为另一个数据时,这被称为 手术.

理解操作的最简单方法是考虑算术。添加操作需要两个数字并将它们转换为两个数字的总和。减法操作需要两个数字并将它们转换为两个数字的差异。您将在您的应用中找到简单的算术;根据帖子的“喜欢”的数量来计算按钮或窗口的正确尺寸和位置,数字无处不在!

在本节中,您将了解Kotlin必须通过考虑它们对数字的方式提供的各种算术运算。在后面的章节中,您可以看到数字以外的类型的操作。

简单的操作

Kotlin中的所有操作都使用称为符号 操作员 表示他们执行的操作类型。考虑您在早期学校日学到的四个算术运算:添加,减法,乘法和分裂。

对于这些简单的操作,Kotlin使用以下运算符:

  • 添加: +
  • 减去: -
  • 乘: *
  • 划分: /

这些运算符如此:

2 + 6
10 - 2
2 * 4
24 / 3

这些线条中的每一个都是所谓的 表达。表达有一个值。在这些情况下,所有四种表达式都具有相同的值:8。您编写代码以执行这些算术运算,因为如果您使用笔和纸张,则将其编写多大。

In your IDE, you can see the values of these expressions as output in the console using println():

如果需要,您可以删除运营商周围的空格:

2+6

你甚至可以混合你把空格放在哪里。例如:

2+6   // OK
2 + 6 // OK
2 +6  // OK
2+ 6  // OK

如果您在操作员的任何一侧有空白空间,则读取表达式通常更容易。

十进制数字

上面的所有操作都使用了整个数字,更像是更正式的 整数。但是,如您所知,并非每个数字都是整体的。

例如,考虑以下内容:

22 / 7

这样,您可能会惊讶地知道,结果在3.这是因为如果您只使用表达式中的整数,则Kotlin也使结果变为整数。在这种情况下,结果将舍入到下一个整数。

您可以通过将其更改为以下内容来告诉Kotlin使用十进制数字:

22.0 / 7.0

这一次,结果是预期的3.142857142857143。

其余的运作

到目前为止你看到的四个操作很容易理解,因为你一直在为你做的大部分生活。 Kotlin还可以使用更复杂的操作,所有这些操作都可以使用标准的数学操作,这只是较少的常见操作。让我们现在转向他们。

其中的第一个是 操作,也称为 modulo. 手术。在分裂中,分母进入分子,整个次数加上剩余时间。这余数正是剩余操作给出的。例如,10个模数3等于1,因为3进入10三次,其余为1。

In Kotlin, the remainder operator is the % symbol, and you use it like so:

28 % 10

In this case, the result equals 8, because 10 goes into 28 twice with a remainder of 8. If you want to compute the same thing using decimal numbers you do it like so:

28.0 % 10.0

这 result is identical to % when there are no decimals, which you can see by printing it out using a 格式说明书:

println("%.0f".format(28.0 % 10.0))

转移操作

左转转移吧 操作采用十进制数的二进制形式,并分别向左或向右移动数字。然后他们返回新二进制数的十进制形式。

For example, the decimal number 14 in binary, padded to 8 digits, is 00001110. Shifting this left by two places results in 00111000, which is 56 in decimal.

这是在此换档操作期间发生的事情的插图:

这 digits that come in to fill the empty spots on the right become 0. The digits that fall off the end on the left are lost. Shifting right is the same, but the digits move to the right. The Kotlin functions for these two operations are as follows:

  • 左转: shl
  • 换身: shr

这些是 infix. 您在操作数之间放置的功能,以便函数调用看起来像一个操作。您将在以后了解有关Invix函数的更多信息。

这是一个例子:

1 shl 3
32 shr 2

这两个值都等于数字8。

使用班次的一个原因是使两个容易的功率乘以或除去。请注意,由剩余的左移与乘以两个相同,剩下的两个左移与乘以四等,等等。同样地,右边的转移与除两个相同,向右移动两个与除以四等相同,等等。

在过去,代码经常使用此技巧,因为CPU的转换位比复杂的乘法和分割算法更简单。因此,如果使用换档,则代码更快。然而,如今,CPU更快,编译器甚至可以将乘法和划分转换为两个转变为您。所以你会看到只有二进制拖把的转移,除非你成为嵌入式系统程序员,否则你可能不会看到。

操作顺序

当然,当您计算值时,很可能会使用多个运算符。这是如何在kotlin执行此操作的一个例子:

((8000 / (5 * 10)) - 32) shr (29 % 5)

注意括号中的使用,在Kotlin服务中有两个目的:使其清除阅读代码的人 - 包括自己 - 你的意思是什么,并消除歧义。

例如,考虑以下内容:

350 / 5 + 2

这种等于72(350分为5,加2)或50(350除以7)吗?那些在学校关注的人会尖叫“72!”你会是对的!

kotlin使用相同的推理,通过所知的内容来实现这一目标 操作员优先级. The division operator (/) has a higher precedence than the addition operator (+), so in this example, the code executes the division operation first.

如果您希望Kotlin首先进行添加 - 即返回50 - 那么您可以使用这样的括号:

350 / (5 + 2)

优先的规则在学校在数学中学习了同样的规则。乘法和划分具有相同的优先级,高于添加和减去,也具有相同的优先级。

数学函数

Kotlin还有各种数学函数 标准库 有必要时使用。你永远不知道你什么时候需要拔出一些三角学,特别是当你是哥伦特和写这些复杂的游戏时!

要使用以下数学函数,请确保您有这个 进口 靠近您的文件顶部。否则,Intellij Idea会告诉您无法找到这些功能。

进口 kotlin.math.*

例如,考虑以下内容:

sin(45 * PI / 180)
// 0.7071067811865475

cos(135 * PI / 180)
// -0.7071067811865475

这se compute the sine and cosine respectively. Notice how both make use of PI which is a constant Kotlin provides us, ready-made with 𝜋 to as much precision as is possible by the computer.

然后就是这样:

sqrt(2.0)
// 1.414213562373095

这计算了2的平方根。您是否知道SIN(45°)等于2的平方根,2

更不用说这些会是一种耻辱:

max(5, 10)
// 10

min(-5, -10)
// -10

这些分别计算最大值和最小值。

如果您特别冒险,您甚至可以组合这样的功能:

max(sqrt(2.0), PI / 2)
// 1.570796326794897

命名数据

在最简单的情况下,计算机编程都是关于操纵数据的。请记住,您在屏幕上看到的所有内容都可以减少到您发送到CPU的数字。有时,您自己可以代表并使用此数据作为各种类型的数字,但其他数据以更复杂的形式,如文本,图像和集合。

在您的Kotlin代码中,您可以为每条数据提供您可以用来稍后引用它的名称。这个名字携带它关联的 类型 这表示名称是什么类型的数据,例如文本,数字或日期。

您将了解本章中的一些基本类型,您将在本书的其余部分中遇到许多其他类型。

常数

看看这个:

val number: Int = 10

This uses the val keyword to declare a constant called number which is of type Int. Then it sets the value of the constant to the number 10.

笔记: Thinking back to operators, here’s another one. The equals sign, =, is known as the 赋值运营商.

这 type Int can store integers. The way you store decimal numbers is like so:

val pi: Double = 3.14159

This is similar to the Int constant, except the name and the type are different. This time, the constant is a Double, a type that can store decimals with high precision.

这re’s also a type called Float, short for floating point, that stores decimals with lower precision than Double. In fact, Double has about double the precision of Float, which is why it’s called Double in the first place. A Float takes up less memory than a Double but generally, memory use for numbers isn’t a huge issue and you’ll see Double used in most places.

Even though we call an item created with val a “constant,” it’s more correct to say that the identifier marked with val is what is constant.

一旦您声明了常量,您就无法更改其数据。例如,考虑以下代码:

val number: Int = 10
number = 0

此代码会产生错误:

Val cannot be reassigned

在您的IDE中,您将看到以这种方式表示的错误:

常量对于不会改变的价值观是有用的。例如,如果您正在建模飞机并需要跟踪可用的座位总数,则可以使用常数。

您甚至可能对一个人的年龄的东西甚至不常用。尽管他们的年龄会随着生日来的,但你可能只关心他们在这个特殊的瞬间的年龄。

In certain situations, for example, at the top level of your code outside of any functions, you can add the const keyword to a val to mark it as a 编译时间常数:

const val reallyConstant: Int = 42

Values marked with const must initialized with a String 或者 a primitive type such as an Int 或者 Double. You can also use const inside a Kotlin type that you’ll learn about in Chapter 12: “Objects.”

变量

通常您要更改名称后面的数据。例如,如果您正在使用存款和提款跟踪您的银行账户余额,则可以使用变量而不是常数。

如果您的程序的数据从未更改过,那么这将是一个相当无聊的计划!但正如您所看到的那样,无法更改常量背后的数据。

当您知道您需要更改一些数据时,您应该使用变量表示数据而不是常量。您以类似的方式声明一个变量,如下所示:

var variableNumber: Int = 42

Only the first part of the statement is different: You declare constants using val, whereas you declare variables using var.

一旦您声明了一个变量,您可以自由地将其更改为您想要的任何内容,只要类型保持不变。例如,要更改上面声明的变量,可以执行以下操作:

variableNumber = 0
variableNumber = 1_000_000

要更改变量,您只需将其分配一个新值。

笔记:在Kotlin中,您可以选择使用下划线使用更大的数字可读。下划线的数量和放置取决于您。

使用有意义的名称

始终尝试为变量和常量选择有意义的名称。好名字可以充当文档并使您的代码易于阅读。一个好名字 具体来说 描述可变或常数的角色。以下是一个好名字的一些例子:

  • personAge
  • numberOfPeople
  • gradePointAverage

通常,坏名称根本不够描述。以下是一些错误名称的例子:

  • a
  • temp
  • average

关键是确保您将理解变量或常数是指稍后再次读取的原因。不要犯错误,你有一个绝对的记忆!它在计算机编程中很常见,以便早在一天或两个日后回顾您自己的代码,并忘记了它所做的事情。通过给出变量和常量直观,精确的名称来使自己更容易。

此外,请注意如何编写上述名称。在Kotlin,它是常见的 骆驼香烟盒 名字。对于变量和常量,请按照这些规则正确案例案例:

  • 从小写字母开始。
  • 如果名称由多个单词组成,请将其加入并启动除了具有大写字母的第一个单词之外的每个单词。
  • If one of these words is an abbreviation, follow the same pattern as if it was a word (e.g., sourceUrlurlDescription).

增量和减少

您需要的常见操作是能够递增或减少变量。在Kotlin,这是如此实现:

var counter: Int = 0

counter += 1
// counter = 1

counter -= 1
// counter = 0

counter variable begins as 0. The increment sets its value to 1, and then the decrement sets its value back to 0.

这se operators are similar to the assignment operator (=), except they also perform an addition or subtraction. They take the current value of the variable, add or subtract the given value and assign the result to the variable.

换句话说,上面的代码是以下的简写:

var counter: Int = 0
counter = counter + 1
counter = counter - 1

Similarly, the *=/= operators do the equivalent for multiplication and division, respectively:

counter = 10

counter *= 3  // same as counter = counter * 3
// counter = 30

counter /= 2  // same as counter = counter / 2
// counter = 15

迷你练习

如果您与Intellij Ideage中的代码无关,现在是尝试某些练习来测试自己的时间!

  1. Declare a constant of type Int called myAge 和 set it to your age.
  2. Declare a variable of type Double called averageAge. Initially, set it to your own age. Then, set it to the average of your age and the age of 30.
  3. Create a constant called testNumber 和 initialize it with whatever integer you’d like. Next, create another constant called evenOdd 和 set it equal to testNumber modulo. 2. Now change testNumber to various numbers. What do you notice about evenOdd?
  4. Create a variable called answer 和 initialize it with the value 0. Increment it by 1. Add 10 to it. Multiply it by 10. Then, shift it to the right by 3. After all of these operations, what’s the answer?

挑战

在继续前进之前,以下是测试您对变量和常量知识的一些挑战。您可以尝试Intellij Idea中的代码来检查您的答案。如果您陷入困境,请查看本章中包含的解决方案。

  1. Declare a constant exercises with value 9 and a variable exercisesSolved with value 0. Increment this variable every time you solve an exercise (including this one).

  2. 鉴于以下代码:

age = 16
print(age)
age = 30
print(age)

Declare age so that it compiles. Did you use var 或者 val?

  1. 考虑以下代码:
val a: Int = 46
val b: Int = 10

Work out what answer equals when you add the following lines of code:

// 1
val answer1: Int = (a * 100) + b
// 2
val answer2: Int = (a * 100) + (b * 100)  
// 3
val answer3: Int = (a * 100) + (b / 10)
  1. 将括号添加到以下计算。括号应显示执行操作的顺序,不应改变计算结果。
5 * 3 - 4 / 2 * 2
  1. Declare two constants ab of type Double 和 assign both a value. Calculate the average of ab 和 store the result in a constant named average.

  2. A temperature expressed in °C can be converted to °F by multiplying by 1.8 then incrementing by 32. In this challenge, do the reverse: convert a temperature from °F to °C. Declare a constant named fahrenheit of type Double 和 assign it a value. Calculate the corresponding temperature in °C and store the result in a constant named celcius.

  3. Suppose the squares on a chessboard are numbered left to right, top to bottom, with 0 being the top-left square and 63 being the bottom-right square. Rows are numbered top to bottom, 0 to 7. Columns are numbered left to right, 0 to 7. Declare a constant position 和 assign it a value between 0 and 63. Calculate the corresponding row and column numbers and store the results in constants named rowcolumn.

  4. A circle is made up of 2𝜋 radians, corresponding with 360 degrees. Declare a constant degrees of type Double 和 assign it an initial value. Calculate the corresponding angle in radians and store the result in a constant named radians.

  5. Declare four constants named x1, y1, x2y2 of type Double. These constants represent the two-dimensional coordinates of two points. Calculate the distance between these two points and store the result in a constant named distance.

关键点

  • 计算机,在最基本的级别,执行简单的数学。
  • 编程语言允许您编写代码,编译器转换为CPU可以执行的指令。 JVM上的Kotlin代码首先转换为字节码。
  • 计算机在Base 2形式中运行数字,否则称为二进制文件。
  • 代码评论 are denoted by a line starting with // 或者 multiple lines bookended with /**/.
  • 代码注释可用于记录您的代码。
  • You can use println to write things to the console area.
  • 算术运营商是:
添加: +
Subtract: -
Multiply: *
Divide: /
Remainder: %
  • 常量和变量为数据提供名称。

  • 一旦您声明了一个常量,您无法更改其数据,但您可以随时更改变量的数据。

  • 始终给出变量和常量有意义的名字,以拯救自己,并且您的同事稍后会头痛。

  • 运算符执行算术,然后分配回变量:

Add and assign: +=
Subtract and assign: -=
Multiply and assign: *=
Divide and assign: /=

然后去哪儿?

在本章中,您只处理数字,两个整数和小数。当然,代码世界比这更有更多!在下一章中,您将要了解更多类型,如字符串,允许您存储文本。

有一个技术问题?想报告一个错误吗? 您可以向官方书籍论坛中的书籍作者提出问题和报告错误 这里.

有反馈分享在线阅读体验吗? 如果您有关于UI,UX,突出显示或我们在线阅读器的其他功能的反馈,您可以将其发送到设计团队,其中表格如下所示:

© 2021 Razeware LLC