三 运算符的基本操作A
/**
* 运算符
*
*/
class Operator
{
public int operatorDiv(int numberInt,int divisor)
{
int resultInt = 0;
return resultInt = numberInt / divisor;
}
public float operatorDiv(float numberFloat,float divisor)
{
float resultFloat = 0.0f;
return resultFloat = numberFloat / divisor;
}
public double operatorDiv(double numberDouble,double divisor)
{
double resultDouble = 0.0;
return resultDouble = numberDouble / divisor;
}
public int operatorModel(int numberInt,int divisor)
{
int resultInt = 0;
return resultInt = numberInt % divisor;
}
public float operatorModel(float numberFloat,float divisor)
{
float resultFloat = 0.0f;
return resultFloat = numberFloat % divisor;
}
public double operatorModel(double numberDouble,double divisor)
{
double resultDouble = 0.0d;
return resultDouble = numberDouble % divisor;
}
/*
* 思考题1:某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数
* 这种算法还可用在查看留言板的分页显示上: 其中x是总共的留言数,6是每页显示的留言数,结果就是总共有多少页。
*/
public int rooms(int member,int roomsContent)
{
int roomsNumber = 0;
roomsNumber = (member + (roomsContent - 1))/roomsContent;
return roomsNumber;
}
/*
* 思考题2:假设你要让x的值在0至9之间循环变化,请写出相应的程序代码。
*/
public void zeroTonine()
{
int x = 0;
int counter = 0;
while(true)
{
if(counter == 20)
break;
x = (x + 1)%10;
System.out.print(x);
counter++;
}
}
}
/*
* 思考题3: 吸血鬼数字
* 两个两位数相乘,结果是一个四位数,并且这个四位数的数字是这两个两位数的乘数的组合.
* 例如: 1260 = 21 * 60
* 1827 = 21 * 57
* 2187 = 27 * 81
* 编写一个程序找出所有的4位吸血鬼数字(另外两个0结尾的数字是不允许的)
*/
class Vampires
{
static int a(int i){return i/1000;}
static int b(int i){return i/100 - i/1000*10;}
static int c(int i){return i/10 - i/100*10;}
static int d(int i){return i%10;}
static int com(int i, int j){
return (i * 10) + j;
}
static void productTest (int i, int m, int n) {
if(m * n == i) System.out.println(i + " = " + m + " * " + n);
}
}
public class OperatorTest
{
public static void main(String[] args)
{
/**
* 1、算术运算符
* +(正号)、-(负号)、+、-、*、/、%
*/
/*加运算*/
System.out.println("加运算");
int sum = 0;
sum = 1+1;
System.out.println(
sum + "abc"
//加运算不仅能对数值进行运算,
//也可以进行字符串直接的加运算或者字符串和数值之间的运算
);
/*除和求余(求模)运算*/
//除运算
System.out.println("除运算");
Operator oper = new Operator();
System.out.println(
oper.operatorDiv(12, 5)//除运算对于整数类型数据进行整除计算.
);
System.out.println(
//oper.operatorDiv(12, 0)//整数除0不会报错,但会抛出异常.
);
System.out.println(
oper.operatorDiv(12.01f,5.6f)//float浮点数进行除运算将得到小数部分.
);
System.out.println(
oper.operatorDiv(31.2f,0)//java中浮点数除0结果为正(负)Infinity
);
System.out.println(
oper.operatorDiv(-31.2f,0)//java中浮点数除0结果为正(负)Infinity
);
System.out.println(
oper.operatorDiv(12.01d,5.6d)//double浮点数进行除运算将得到小数部分.
);
System.out.println(
oper.operatorDiv(31.2d,0)//java中浮点数除0结果为正(负)Infinity
);
System.out.println(
oper.operatorDiv(-23.8d, 0)//java中浮点数除0结果为正(负)Infinity
);
//求模运算
System.out.println("求模运算");
System.out.println(
oper.operatorModel(12, 5)
);
System.out.println(
//oper.operatorModel(12, 0)//同样不能对一个整数对0进行求模运算
);
System.out.println(
oper.operatorModel(1.12f, 1.1f) + " , " +
oper.operatorDiv(1.12f, 1.1f)
//浮点数的求模运算和浮点数的除法运算不同.
);
System.out.println(
oper.operatorModel(2.0f, 0.0f)//浮点数与0求模结果返回NaN
);
System.out.println(
oper.operatorModel(-2.0f, 0.0f)//浮点数与0求模结果返回NaN
);
System.out.println(
oper.operatorModel(1.23, 0.3) + " , " +
oper.operatorDiv(1.23, 0.3)
//浮点数的求模运算和浮点数的除法运算不同.
);
System.out.println(
oper.operatorModel(1.23, 0.0)//浮点数与0求模结果返回NaN
);
System.out.println(
oper.operatorModel(-1.22, 0.0)//浮点数与0求模结果返回NaN
);
//思考题1:
System.out.println("思考题1");
System.out.println(
oper.rooms(3, 6) + " " +
oper.rooms(30, 6)
);
//思考题2:
System.out.println("思考题2");
oper.zeroTonine();
System.out.println();
//思考题3:
System.out.println("思考题3");
for(int i = 1001; i < 9999; i++)
{
Vampires.productTest(i, Vampires.com(Vampires.a(i), Vampires.b(i)), Vampires.com(Vampires.c(i), Vampires.d(i)));
Vampires.productTest(i, Vampires.com(Vampires.a(i), Vampires.b(i)), Vampires.com(Vampires.d(i), Vampires.c(i)));
Vampires.productTest(i, Vampires.com(Vampires.a(i), Vampires.c(i)), Vampires.com(Vampires.b(i), Vampires.d(i)));
Vampires.productTest(i, Vampires.com(Vampires.a(i), Vampires.c(i)), Vampires.com(Vampires.d(i), Vampires.b(i)));
Vampires.productTest(i, Vampires.com(Vampires.a(i), Vampires.d(i)), Vampires.com(Vampires.b(i), Vampires.c(i)));
Vampires.productTest(i, Vampires.com(Vampires.a(i), Vampires.d(i)), Vampires.com(Vampires.c(i), Vampires.b(i)));
Vampires.productTest(i, Vampires.com(Vampires.b(i), Vampires.a(i)), Vampires.com(Vampires.c(i), Vampires.d(i)));
Vampires.productTest(i, Vampires.com(Vampires.b(i), Vampires.a(i)), Vampires.com(Vampires.d(i), Vampires.c(i)));
Vampires.productTest(i, Vampires.com(Vampires.b(i), Vampires.c(i)), Vampires.com(Vampires.d(i), Vampires.a(i)));
Vampires.productTest(i, Vampires.com(Vampires.b(i), Vampires.d(i)), Vampires.com(Vampires.c(i), Vampires.a(i)));
Vampires.productTest(i, Vampires.com(Vampires.c(i), Vampires.a(i)), Vampires.com(Vampires.d(i), Vampires.b(i)));
Vampires.productTest(i, Vampires.com(Vampires.c(i), Vampires.b(i)), Vampires.com(Vampires.d(i), Vampires.a(i)));
}
/**
* 2、赋值运算符
* =、+=、-=、*=、/=、%=
* 注1:在JAVA里可以把赋值语句连在一起,如:x = y = z = 5 ; 在这个语句中,三个变量都得到同样的值5。
* 注2 :x += 3等效于x = x + 3,*= ,-=,/=,%=依此类推。
*/
/**
* 3、比较运算符
* ==、!=、>、>=、<、<=、instaceof(检查对象A是否是B类型)
* 注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
* 注2:比较运算符“==”不能误写成“=” ,切记!切记!
*/
/*instanceof运算符*/
System.out.println("instanceof运算符");
OperatorTest2 op = new OperatorTest2();
if(op instanceof Object)//任何类都是Object类的子类.所以这个对象属于Object类.
System.out.println("opert is instance of Object");
else if(op instanceof OperatorTest2)
System.out.println("opert is instance of OperatorTest");
else
System.out.println("opert is not instatnce of Object or OperatorTest");
}
}
/* ~~Console Out~~
* 加运算
2abc
除运算
2
2.1446428
Infinity
-Infinity
2.1446428571428573
Infinity
-Infinity
求模运算
2
0.01999998 , 1.0181818
NaN
NaN
0.030000000000000027 , 4.1000000000000005
NaN
NaN
思考题1
1 5
思考题2
12345678901234567890
思考题3
1260 = 21 * 60
1395 = 15 * 93
1435 = 41 * 35
1530 = 51 * 30
1827 = 87 * 21
2187 = 27 * 81
6880 = 86 * 80
6880 = 80 * 86
instanceof运算符
opert is instance of Object
*/