第2章 基本程序设计
2.1 引言
用编程解决实际问题
2.2 编写简单的程序
问题:计算圆的面积
分析:读入半径;使用公式计算面积;显示面积
文件名称:ComputeArea.java
public class ComputeArea{
public static void main(String[] args){
double radius;//半径
double area;//面积
radius = 20;
area = radius * radius * 3.14159;
System.out.println("The area for the circle of radius "+radius+" is "+area);
}
}
加号(+)有两种含义:①代表加法,②用于字符串的链接(合并)。
2.3 从控制台读取输入
使用Scanner类从控制台读取输入,使程序可以获取用户的输入。
Java使用System.out表示标准输出设备,使用System.in表示标准输入设备。为执行控制台输出,只需使用println方法在控制台上显示基本数据类型和字符串。为获得控制台输入,可以使用Scanner类创建一个对象,读取来自Scanner.in的输入。例如:
Scanner input = new Scanner(System.in);
语法new Scanner(System.in)创建了一个Scanner类型的对象。语法Scanner input声明input是一个Scanner类型的变量。整句Scanner input = new Scanner(System.in)创建了一个Scanner对象,并且将它的引用赋给变量input。
文件名称:ComputeAreaWithConsoleInput.java
import java.util.Scanner; //Scanner is in the java.util package
public class ComputeAreaWithConsoleInput{
public static void main(String[] args){
//创建Scanner对象
Scanner input = new Scanner(System.in);
Scanner.out.print("Enter a number for radius:"); //提示用户输入
double radius = input.nextDouble(); //从键盘上读取输入的数值,并将其赋值给radius
double area = radius * radius * 3.14159;
System.out.println("The area for the circle of radius "+radius+" is "+area);
}
}
Scanner类在包java.util里,在第1行被导入。两种类型的import语句:
- 特定导入:在import语句中指定单个的类。
例如,从包java.util中导入Scanner。import java.util.Scanner;
- 通配符导入:通过使星号作为通配符,导入一个包中的所有类。
例如,导入包java.util中的所有类。import java.util.*;
声明特定导入和声明通配符导入在性能上没有差别。
2.4 标识符
标识符是为了标识程序中诸如类、方法、变量等元素而采用的命名。
程序中的命名称为标识符,标识符必须遵从的规则:
- 标识符是由字母、数字、下划线和美元符号($)构成的字符序列。
- 标识符必须以字母、下划线、美元符号($)开头,不能以数字开头。
- 标识符不能是保留字。保留字子啊Java语言中具有特定含义。关键字是保留字。
- 标识符可以为任意长度。
2.5 变量
变量用于表示在程序中可能被改变的值。
变量用于表示某种类型的数据。为了使用变量,声明变量时必须确定该变量的名字及存储的数据类型。声明变量的语法如下:
datatype variableName;
如果几个变量为同一类型,可以一起声明,如下所示:
datatype variable1,variable2,...,ariablen;
变量之间用逗号分隔开。
eg:int i,j,k;
变量通常都有初始值,可以声明变量时并同时将其初始化。
eg:int count;count = 1;
eg:int count = 1;
在给变量赋值之前,必须声明变量。方法中声明的变量在使用之前必须被赋值。
2.6 赋值语句和赋值表达式
赋值语句为变量分配值。在Java中赋值语句也可以用作表达式。
变量在声明之后,可以使用赋值语句给它赋一个值。在Java中,等号(=)作为赋值操作符。赋值语句:variable = expression;
在Java中,赋值语句本质上就是一个表达式,计算结果为赋给赋值操作符左侧变量的值。因此,赋值语句也称为赋值表达式。在赋值语句中,左边变量的数据类型必须与右边的值的数据类型兼容。
2.7 命名常量
命名常量是表示不变值的标识符。
变量的值在程序执行过程中可能会发生改变,但常量则表示永不改变的数据。
声明常量的语法:final datatype CONATANTNAME = value;
必须在同一条语句中对常量进行声明和赋值。final是声明常量的Java关键字。常量中的所有字母都要大写。
eg:final double PI = 3.14159;
使用常量好处:
- 当一个值多次被使用时,不必重复输入;
- 如果必须修改常量值,只需在源代码的一个地方做改动;
- 给常量赋一个描述性名字会提高程序的可读性。
文件名称:ComputeAreaWithConsoleInput.java
import java.util.Scanner; //Scanner is in the java.util package
public class ComputeAreaWithConsoleInput{
public static void main(String[] args){
final double PI = 3.14159;
//创建Scanner对象
Scanner input = new Scanner(System.in);
Scanner.out.print("Enter a number for radius:"); //提示用户输入
double radius = input.nextDouble(); //从键盘上读取输入的数值,并将其赋值给radius
double area = radius * radius * PI;
System.out.println("The area for the circle of radius "+radius+" is "+area);
}
}
2.8 命名习惯
程序中的变量、常量、类和方法选择直观易懂的描述性名字。命名是区分大小写的。
- 使用小写字母命名变量和方法。例如,变量radius和area以及方法print。如果一个名称包含多个单词,就将它们连在一起,第一个单词的字母小写,而后面每个单词的首字母大写。例如,变量numberofstudents。这种命名风格称为驼峰命名法。
- 类名中每个单词的首字母大写。例如,类名ComputeArea和System。
- 常量中的所有字母大写,两个单词间用下划线连接。例如,常量PI和常量MAX_VALUE。
2.9 数值数据类型和操作
6种数值数据类型及其范围和存储空间:
2.9.1 从键盘读取数值
Scanner对象的方法:
2.9. 2 数值操作符
数值数据类型的操作符包括标准的算术操作符:+(加)、-(减)、×(乘)、/(除)、%(取模)
操作数是被操作符操作的值。
当除法的两个操作数均为整数时,除法的结果为商,而小数部分被截去。为了执行浮点数的除法,其中一个操作数必须是浮点数。
操作符%称为取模操作符,在执行除法后得到余数。左边的操作数是被除数,右边的操作数是除数。
操作符%通常用于正整数,但也可用于负整数和浮点值。只有当被除数是负数时,余数才是负的。
2.9.3 指数运算
调用pow方法来执行指数运算。
pow方法定义在Java API的Math类中。使用语法Math.pow(a,b)调用该方法,并返回运算结果。其中a和b是pow方法中参数,数值是调用方法的真实值。
2.10 数字型字面值
数字值是直接出现在程序中的常量值。
2.10.1 整型字面值
整型字面值可以赋值给一个整型变量,只要它可以放入该变量中即可。如果字面值太大,超出该变量的存储范围,就会出现编译错误。例如:语句byteb=128就会导致一个编译错误,因为byte型变量存放不下128(注意:byte型变量的范围是-128~127)。
整型字面值默认为int型,它的值从
为了表示一个1ong型的整型字面值,需要在其后加字母L或1。推荐使用L,因为1(L的小写)很容易与1(数字1)混淆。
注意:默认情况下,整型字面值是一个十进制整数。如要表示一个二进制整型字面值使用前置 0b或者 0B(零B);如要表示一个八进制整型字面值,使用前置0(零);而要表示一个十六进制整型字面值,使用前置0x或0X(零X)。
2.10.2 浮点型字面值
浮点型字面值带小数点,默认为double型。可以通过在数字后面加字母f或F表示该数为f1oat型值,也可以在数字后面加d或D表示该数为 doub1e型值。
f1oat型值具有6~9个有效数字,而double型值具有15~17个有效数字。
2.10.3 科学计数法
E(或e)表示指数。
浮点型字面值也可以用科学计数法表示。
写成1.23456E2或者1.23456E+2
写成1.23456E-2
2.11 JShell
JShell是用于快速对表达式求值以及执行语句的命令行工具。
JShell是Java 9引入的命令行交互式工具。JShell支持输入单个Java语句并执行,可以立即查看结果,无需编写完整的类。此功能通常称为REPL(读取-计算-打印循环),即输入表达式和语句后立即计算和执行,并立即显示结果。
要使用JShell,需要安装JDK 9或者以上版本。若使用Windows系统,要确保在Windows环境中设置了正确的路径。
打开命令行窗口,输入jshell来启动JShell。