Java基础之计算圆的周长

最简单的程序

圆形的周长公式:

C=πd=2πr π是圆周率,约等于3.14,公式中r为圆的半径,d为圆的直径

在数学领域,称之为公式,在计算机领域,习惯称之为算法。

算法描述的是,如果要解决一个问题,所需要执行的动作以及这些动作的执行顺序。算法可以帮助程序员
使用程序设计语言编写程序之前进行规划。

对一个半径为 3 的圆的周长计算,可以用Java代码:

public static void main(String[] args) {
    System.out.println(2*3*3.14);
}
18.84

和其他大多数语言一样,Java用*符号来表示乘法运算。

上面的代码完成了既定的目标,但是只能计算半径为 3 的圆的周长。

对于编程语言来说,变量是一个最为基本的概念。变量是一个有名字的内存位置,它能够被赋值。变量尽量选择有意义的单词,而不是随便的一串字母。

引入变量

public static void main(String[] args) {
    double radius;
    radius = 6;
    System.out.print("半径为"+radius+"周长的计算结果 ");
    System.out.println(2*radius*3.14);
}
半径为6.0周长的计算结果 37.68

double radius

第二行声明了变量,用 变量 radius 代表半径,在Java中一定要先声明变量,然后再使用变量。
下面是声明变量的一般形式:
type var-name;
在这里,type表示所要声明的变量的类型,var-name是所要声明变量的名称。Java定义了几种数据
类型:整型integer,字符型character,浮点型floating-point。关键字double指的是
双精度浮点类型。

变量先声明,再使用

radius = 6;
第三行给变量赋值。在Java中,赋值符号是等号。在执行这行语句之后,变量radius的值变成了6。

System.out.print("半径为"+radius+"周长的计算结果 ");

在这个语句中,变量radius两边的加号+的作用是,让 radius 的取值与它前面的字符串相连接,然后再输出结果字符串的内容。
实际上,变量 radius 先被它赋值,再将值转换成字符串,然后再和加号之前的字符串相连接。

System.out.println(2*radius*3.14);

首先,内置方法 print() 被用来显示有说明的字符串。该字符串后面不换行,这意味着如果生成第二个输出,它将在同一行中开始输出。
方法 print()和方法 println() 类似,只是它在每次调用后并不输出一个新行(即换行)。

方法 print() 方法 println() 都能够用来输出Java的任何内置类型的值。

控制台输入

上面的例子中,半径的值是固定的。现在,我们使用 Java 提供的 Scanner 类从控制台输入。

Java 提供了多种方式从控制台输入,但是在真正编写代码的时候很少使用到,因此这里这介绍一种。

通过扫描器 Scanner 类来获取从控制台输入的数据,一次最多可以读入一行数据,在创建Scanner时需要用 System.in 来初始化。

固定的语法格式如下:

Scanner input = new Scanner(System.in);

代码创建了一个 Scanner 对象,并且将它的引用赋值给变量 input。之后可以调用它的方法来获取输入的数值。

double radius = input.nextDouble();

完整的代码如下:

import java.util.Scanner;

/**
 * 计算圆的周长
 */
public class PerimeterDemo {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        double radius;
        System.out.println("输入一个半径:");
        radius = input.nextDouble();
        System.out.print("半径为"+radius+"周长的计算结果 ");
        System.out.println(2*radius*3.14);
    }
}
输入一个半径:
8
半径为8.0周长的计算结果 50.24

Scanner类位于java.util包中,需要先导入import后再使用。代码的第一行import java.util.Scanner;声明了这个导入,它的位置不是随便放的,必须要在 class的上方。

包的导入有两种形式:

  • 明确导入 在 import 语句中指定一个类

import java.util.Scanner;

  • 通配符导入 在 import 语句中通过*导入所有的类

import java.util.*;

如果没有在代码中使用到导入的类,就算写了导入的代码,也会在编译的时候忽略掉。

两种导入形式没有明显的性能差异,但是一般建议采取 “明确导入”,方便阅读。

上面的例子,需要在控制台输入的是整数,否则会在运行时报错。
实际上,还可以输入其他类型的数据。在此之前,需要先了解Java的基本数据类型。