Java常用运算的一些实践
数据类型和常用运算#
-
基本语言元素
-
关键字:程序中有特殊含义和通途的单词
-
标识符:给变量、方法、类等起的名字
- 字母、数字、下划线和$,数字不能开头
- 大小写敏感(区分大小写)
- 不能跟关键字相同,不能包含特殊字符
- 见名知意,驼峰标识
-
运算符:指定某种运算的特殊符号
- 算术运算符:+、-、*、/、%
- 赋值运算符:=、+=、-=、*=、/=、%=、……
- 关系运算符:>、<、>=、<=、==、!=
- 短路运算符:&&、||
- 条件运算符:? :
- 自增自减运算符:++、--
- 类型转换运算符:()
- 其他运算符:逻辑运算符、位运算符、移位运算符、下标运算符、成员运算符等
-
字面量:程序中不变的部分
- 引用型字面量:null
- 布尔型字面量:true和false
- 字符型字面量:‘q’,‘\n’,‘\t’,‘\ddd’[*]
- 整型字面量:29,035,0x1d
- 实型字面量:3.14,.25e2,5.5f
- 字符串字面量:“Hello, world”
- 类字面量:String.class,int.class
-
分隔符:空格、花括号、方括号、圆括号、分号、逗号、冒号等
-
-
数据类型
-
基本类型(primitive type)
- 整型:byte、short、int、long
- 实型:float、double
- 布尔型:boolean
- 字符型:char
-
枚举类型(enumeration type):用于定义符号常量。
-
引用类型(reference type):除了基本数据类型和枚举类型,剩下的类型都是引用类型。
-
-
变量和常量
- 变量:计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量存储的值通常是可变的,因此称之为变量。
- 常量:在程序运行时,不会被修改的量。Java中可以使用final关键字定义常量。
输入一个年份,判断是不是闰年。
import java.util.Scanner;
public class Year {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入年份:");
int year=sc.nextInt();
if ((year %4 ==0 && year %100 !=0) || year %400 ==0 )
{
System.out.println(year + "是闰年");
}
else {
System.out.println(year + "不是闰年");
sc.close();
}
}
}
输入圆的半径,计算圆的周长和面积。
import java.util.Scanner;
public class Cl {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入圆的半径:");
final double π=3.14;
double r=sc.nextDouble();
double s=π*r*r;
double c=2*π*r;
System.out.println("圆的面积是:"+s);
System.out.println("圆的周长是:"+c);
sc.close();
}
}
分段函数求值。
$$
f(x)=\begin{cases}
3x+5 & \text (x \lt -1) \
x-1 & \text (-1 \le x \le 1) \
5x-3 & \text (x \gt 1)
\end{cases}
$$
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入数字");
double x=sc.nextDouble();
double y;
if (x<-1) {
y=3*x+5;
}
else if (x<=1) {
y=x-1;
}
else {
y=5*x-3;
}
sc.close();
System.out.println("y="+y);
}
}
个人所得税计算。在我国,个人所得税的起征点是3500元,计算公式是:
个人所得税 = (工资收入 - 五险一金 - 个税起征点) * 税率 - 速算扣除数
其中,税率和速算扣除数可以查下表得到:
级数 | 含税级距 | 税率 | 速算扣除数 |
---|---|---|---|
1 | 不超过1500元的 | 3 | 0 |
2 | 超过1500元至4500元的部分 | 10 | 105 |
3 | 超过4500元至9000元的部分 | 20 | 555 |
4 | 超过9000元至35000元的部分 | 25 | 1005 |
5 | 超过35000元至55000元的部分 | 30 | 2755 |
6 | 超过55000元至80000元的部分 | 35 | 5505 |
7 | 超过80000元的部分 | 45 | 13505 |
import java.util.Scanner;
public class Money {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入你工资");
double a=sc.nextDouble(); //输入的工资数;
double b=a-a*0.08-3500; //扣除五险一金和个税起征点后的值;
double c; //指个人所得税
double d; //指税率
double e; //指速算扣除数
if (b<=0) {
d=0; e=0;
}
else if (b<=1500) {
d=0.03;e=0;
}
else if (b<=4500) {
d=0.1;e=105;
}
else if (b<=9000) {
d=0.2;e=555;
}
else if (b<=35000) {
d=0.25;e=1005;
}
else if (b<=55000) {
d=0.3;e=2755;
}
else if (b<=80000) {
d=0.35;e=5505;
}
else {
d=0.45;e=13505;
}
c= b*d-e;
System.out.println(c);
//System.out.printf("需要缴纳的个人所得税: ¥%.2f元\n", c); 老师对结果的格式话
sc.close();
}
}
输入一个百分制的成绩,将其转换成对应的等级,规则如下表所示:
成绩 | 等级 |
---|---|
90-100 | A |
80-89 | B |
60-79 | C |
<60 | D |
import java.util.Scanner;
public class ZhuanHuan {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入成绩;");
double a=sc.nextDouble();
if (a<60 && a>=0) {
System.out.println("D");
}
else if (a<80) {
System.out.println("C");
}
else if (a<90) {
System.out.println("B");
}
else if (a<=100) {
System.out.println("A");
}
else {
System.out.println("检查是否输错");
}
sc.close();
}
}
输入成绩等级输出对应的评语,规则如下表所示:
成绩等级 | 评语 |
---|---|
A | 该生成绩优异,学习踏实认真 |
B | 该生积极上进,学习态度较好 |
C | 该生学习努力,成绩有待提高 |
D | 该生成绩稳定,动手能力很强 |
import java.util.Scanner;
public class ShuPingYu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入等级:");
char r=sc.next().charAt(0);
switch(r){
case 'a':
case 'A':
System.out.println("该生成绩优异,学习踏实认真");
break;
case 'b':
case 'B':
System.out.println("该生积极上进,学习态度较好");
break;
case 'c':
case 'C':
System.out.println("该生学习努力,成绩有待提高");
break;
case 'd':
case 'D':
System.out.println("该生成绩稳定,动手能力很强");
break;
default:
System.out.println("小子,不要乱输");
}
sc.close();
}
}
将一颗色子掷60000次,统计每一面出现的次数。
public abstract class TongJi {
public static void main(String[] args) {
int f1=0,f2=0,f3=0,f4=0,f5=0,f6=0;
for (int i=1;i<=60000;i++){
int a=(int)(Math.random()*6+1);
switch(a) {
case 1: f1++; break;
case 2: f2++; break;
case 3: f3++; break;
case 4: f4++; break;
case 5: f5++; break;
case 6: f6++; break;
}
}
System.out.println("输出点数1的次数:"+f1);
System.out.println("输出点数2的次数:"+f2);
System.out.println("输出点数3的次数:"+f3);
System.out.println("输出点数4的次数:"+f4);
System.out.println("输出点数5的次数:"+f5);
System.out.println("输出点数6的次数:"+f6);
}
}