第二部分 基础程序设计
2.1标识符
标识符是为了表示程序中诸如类、方法和变量的元素而采用的命名。
标识符的命名必须遵循以下规则:
(1)标识符是由字母、数字、下划线(_)和美元符号($)构成的字符序列。
(2)标识符必须以字母、下划线和美元符号开头,不能以数字开头。
(3)标识符不能是保留字。
(4)标识符不能是true、false或null。
(5)标识符可以为任意长度。
提示:在Java中是严格区分大小写的。
2.2变量
变量是用于表示在程序中可能被改变的值。它们被称为变量是因为它们的值可以改变。
提示:在赋值给变量之前,必须声明变量。方法中声明变量在使用之前必须被赋值。在任何时候,都要尽可能一步完成变量的声明和赋初值。这样使得程序易读,同时避免程序设计错误。
每个变量都有使用范围。变量的使用范围是指变量可以被引用到的程序的部分。
2.3赋值语句和赋值表达式
要点提示:赋值语句将一个值指定给一个变量。在Java中赋值语句可以作为一个表达式。
声明变量以后,可以使用赋值语句给它赋一个值。在Java中,将等号(=)作为赋值操作符。
在Java中,赋值语句本质上就是计算出一个值并将它赋值给操作符左边变量的一个表达式。由于这个原因,赋值语句常常被称为赋值表达式。
注意:在赋值语句中,左边变量的数据类型必须和右边值的数据类型相互兼容。
2.4命名常量
要点提示:命名常量是一个代表不变值的标识符。
一个变量的值在程序执行过程中可能会发生变化,但是命名常量或简称为常量,则表示从不会改变的永久数据。
使用常量的好处:
(1)不必重复输入同一个值。
(2)如果必须修改常量值,只需在源代码中的一个地方做改动。
(3)给常量附一个描述性名字会提高程序的易读性。
2.5命名习惯
要点提示:严格遵循Java的命名习惯可以让程序易于理解,以避免错误。
应该确保程序中为变量、常量、类和方法所选择描述性名字是直观易懂的。
(1)使用小写字母明明变量和方法。
(2)类名中的每个单词的首字母大写。
(3)大写常量中的所有字母,两个单词兼用下划线链接。
警告:对类命名时不要选择Java库中已经使用的名称。
2.6数值数据类型和操作
要点提示:Java针对整数和浮点数有六种数值类型,以及+、—、*、/、和%等操作。
数字类型
每个数值类型都有它的取值范围。编译器会根据每个变量或常量的数据类型为其分配存储空间。在Java中,为数值、字符值和布尔值数据提供了八种基本数据类型。
四种类型的整数:byte、short、int和long。应该为变量选择最合适的数据类型。
两种类型的浮点数:float、double。
2.7自增和自减操作符
自增(++)和自减(–)操作符是对变量进行加1和减1的操作。
一些常用的方法
System.currentTimeMillis();返回当前时间。
Math.pow(a,b)计算a^b。
编程练习题
import java.util.Scanner;
public class Demo2_1 {//IPO Input Process Output
public static void main(String[] args) {
//1.获取用户输入的摄氏温度
Scanner scanner=new Scanner(System.in);
//提示信息
System.out.print("Enter a degree in Celsius:");
double celsius=scanner.nextDouble();
//2.将摄氏温度转换为华氏温度
double fahrenheit=(9.0/5)*celsius+32;
//3.将华氏温度输出
System.out.println(celsius+" Celsius is "+fahrenheit+" Fahrenheit");
}
}
import java.util.Scanner;
public class Demo2_2 {
//全局常量
public static final double PI=3.1415926;
public static void main(String[] args) {
//1.获取用户输入的半径和高
Scanner scanner=new Scanner(System.in);
//提示
System.out.print("Enter the radius and length of a cylinder:");
double radius=scanner.nextDouble();
double length=scanner.nextDouble();
//2.先计算底面积 后计算体积
double area=radius*radius*PI;
double volume=area*length;
//3.将体积输出
System.out.println("The area is "+area);
System.out.println("The volume is "+volume);
}
}
import java.util.Scanner;
public class Demo2_3 {
public static void main(String[] args) {
//1.获取用户输入的数字
Scanner scanner=new Scanner(System.in);
System.out.print("Enter a number betweem 0 and 1000:");
int number=scanner.nextInt();
//2.将数字进行分解
/*
987%10=7->a
987/10=98
98%10=8->b
98/10=9
9%10=9->c
a+b+c
*/
int a=number%10;
number/=10;
int b=number%10;
number/=10;
int c=number%10;
//3.将三个数字相加并输出
int add=a+b+c;
System.out.println("The sum of the digit is "+add);
}
}
import java.util.Scanner;
public class Demo2_4 {
public static void main(String[] args) {
//1.获取用户输入的分钟数
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the number of minutes:");
int mintues=scanner.nextInt();
//2.将从分钟数中转化天数->年数
int days=mintues/60/24;
int years=days/365;
days=days%365;
//3.输出
System.out.println(mintues+" mintues is approximately "+years+" years and "+days+" days");
}
}
import java.util.Scanner;
public class Demo2_5 {
public static void main(String[] args) {
//获取从1970 1-1 00:00:00 到至今的毫秒数
Scanner scanner=new Scanner(System.in);
//获取偏移量
System.out.print("Enter the time zone offset to GMT:");
int offset=scanner.nextInt();
long millis=System.currentTimeMillis();
long seconds=millis/1000;
long minutes=seconds/60;
long hours=minutes/60;
//如何从经过的毫秒值里获取当前小时 总小时%24
System.out.print(hours%24+offset+":");//东八区+8
//...当前分钟
System.out.print(minutes%60+":");
//...当前秒
System.out.println(seconds%60);
}
}
import java.util.Scanner;
public class Demo2_6 {
public static void main(String[] args) {
//1.输入水的重量 初始温度 最终温度
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the amount of water in kilograms:");
double weight=scanner.nextDouble();
System.out.print("Enter the inital temperature:");
double initalTemp=scanner.nextDouble();
System.out.print("Enter the final temperature:");
double finalTemp=scanner.nextDouble();
//2.根据公式 计算能量
double energy=weight*(finalTemp-initalTemp)*4184;
//3.输出能量值
System.out.println("The energy needed is "+energy);
}
}
public class Demo2_7 {
public static void main(String[] args) {
double money=100;//本金
double rate=5.0/100/12;//月利率
//第一个月
money=money*(1+rate);
money=(money+100)*(1+rate);
money=(money+100)*(1+rate);
money=(money+100)*(1+rate);
money=(money+100)*(1+rate);
money=(money+100)*(1+rate);
System.out.println(money);
}
}
import java.util.Scanner;
public class Demo2_8 {
public static void main(String[] args) {
//1.输入两个坐标
Scanner scanner=new Scanner(System.in);
System.out.print("Enter x1 and y1:");
double x1=scanner.nextDouble();
double y1=scanner.nextDouble();
System.out.print("Enter x2 and y2:");
double x2=scanner.nextDouble();
double y2=scanner.nextDouble();
//2.计算两个坐标之间的距离
double deltX=x2-x1;
double deltY=y2-y1;
//Math.pow(2,3) 2^3
//Math.pow(4,0.5) Math.sqrt()
double distance=Math.sqrt(Math.pow(deltX, 2)+Math.pow(deltY, 2));
// double distance=Math.pow(Math.pow(deltX, 2)+Math.pow(deltY, 2),0.5);
//3.输出距离
System.out.println(distance);
}
}
import java.util.Scanner;
public class lain2_9 {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1.提示用户输入六边形边长
System.out.print("Enter hexagonal edge length: ");
double length=scanner.nextDouble();
//2.通过题中提示的计算六边形面积公式计算
double area=3*Math.sqrt(3)/2*Math.pow(length, 2);
//3.将计算结果输出
System.out.println(area);
}
}
import java.util.Scanner;
public class lian2_10 {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1.提示用户输入华氏温度和风速
System.out.println("Enter the temperature in Fahrenheit between -58F and 41F:");
double temperature=scanner.nextDouble();
System.out.println("Enter the wind speed (>=2) in mile per hour: ");
double speed=scanner.nextDouble();
//2.用计算公式计算t
double t=35.74+0.6215*temperature-35.75*Math.pow(speed, 0.16)+0.4275*temperature*Math.pow(speed, 0.16);
//3.输出寒冷程度
System.out.println("The wind chill index is "+t);
}
}
import java.util.Scanner;
public class lian2_11 {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1.提示用户输入三角形三个点的坐标
System.out.println("Enter three point for a triangle:");
double x1=scanner.nextDouble();
double y1=scanner.nextDouble();
double x2=scanner.nextDouble();
double y2=scanner.nextDouble();
double x3=scanner.nextDouble();
double y3=scanner.nextDouble();
//2.根据坐标计算边长S1 S2 S3
double L1=Math.sqrt(Math.pow((x1-x2),2)+Math.pow((y1-y2),2));
double L2=Math.sqrt(Math.pow((x1-x3),2)+Math.pow((y1-y3),2));
double L3=Math.sqrt(Math.pow((x2-x3),2)+Math.pow((y2-y3),2));
//3.根据公式计算面积
double s=(L1+L2+L3)/2;
double area=Math.sqrt(s*(s-L1)*(s-L2)*(s-L3));
System.out.println("The area of the triangle is "+area);
}
}