变量和基本数学运算

1. 什么是变量

  • 几乎所有的编程语言,都需要变量临时存储一些需要处理的数据。
  • 变量需要先声明(定义),后使用。
  • 一个变量只能声明(定义)一次!声明后可重复使用。

Java是强制类型定义的,就是说:在定义一个变量的时候,需要给出数据类型,比如

int theFirstVariable = 10;

上面int就是告诉电脑你要定义一个普通整数的变量,theFirstVariable是这个变量的名字,=是给变量赋值。因此上面的代码表示

定义一个名叫theFirstVariableint类型整数变量,并给它赋值10

2. 如何定义一个变量

定义一个变量有两种方式: (1) 先声明,后初始化赋值

int a;     // 先声明一个叫a的int型变量,未初始化赋值
a = 10;    // 再给a赋值为10,因为前面已经声明过a是int型整数,使用的时候就不用写int了。

(2) 同时声明和初始化赋值

int a = 10;

3. 变量可根据需求重复赋值

int a = 10;  // 这里a=10
a = 15;      // 这里我们重新给a赋值为15。

我们甚至可以这样给变量赋值:

int a = 10;   // 创建int型变量a,并令a=10
a = a + 5;    // 先计算右边a + 5 = 15(此时a还是等于10),然后将计算结果 15 再赋值给a(a的值被更新为15)
  • 编程中,=是赋值的意思:将等号右边的值(如果需要,先计算结果),赋给等号左边的变量。

可以自己做实验检验上述结果。

4. 基本数学运算

基本的加减乘除和我们书写数学式子是一样的,在Java中是+ - * /比如:

  • 例1. 计算圆的周长和面积
double radius = 10.;
double PI = 3.14159;
double perimeter = 2 * radius * PI;
double area = radius * radius * PI;
System.out.println("perimeter = " + perimeter); // 这里的加号是连接字符串
System.out.println("area = " +area);

注:因为上面的π是常数,我们可以用Math.PI来替换π的值, Math.PI是Java提供的π的值。

double radius = 10.;
double perimeter = 2 * radius * Math.PI;
double area = radius * radius * Math.PI;
//打印结果
System.out.println("perimeter = " + perimeter);
System.out.println("area = " +area);

5. 其他数学运算

(1) 乘方 - Math.pow(底数,指数)

  • 例2. 上述求面积的计算可替换为
double area = Math.pow(radius, 2) * Math.PI;

其中,Math.pow(底数,指数)Java提供的求幂的函数,我们这里直接调用了这个方法,并且给出底数(第一个参数)和指数(第二个参数),两个参数都是double类型的参数,且Math.pow()计算结束,会返回一个double类型的幂。

(2) 开平方 - Math.sqrt(被开方数)

  • 例3. 已知圆的面积,求半径
      double area = 10.;
      double radius = Math.sqrt(area / Math.PI); // 先计算面积除以Pi,然后再开方
      // 打印结果
      System.out.println("radius = " + radius);
    

这里,因为开平方只需要一个参数:被开方数,所以我们只需要先将area除以$ PI$,再将结果传递给Math.sqrt()这个函数。

更多运算请查看Java提供的Math包。

(3) 求余数

int m = 17 % 3;   // 求17除以3的余数
System.out.println(m);  // 2

6. 一些奇怪的运算写法

int a = 5;  // 先给a赋值为5
a += 3;     // 等价于 a = a + 3
System.out.println("calculate 'a+=3' \t a = " + a);

a = 5;      // 复原a的值为5
a *= 2;     // 等价于 a = a * 2
System.out.println("calculate 'a*=2' \t a = " + a);

int i = 10;
i++;        // i 自增 1,类似的写法有++i,与i++有区别
System.out.println("The magic 'i++' \t i = " + i);
i = 10;     // 复原i的值为 10
i--;        // i 自减 1,类似的写法有--i,与i--有区别
System.out.println("The magic 'i--' \t i = " + i);