四位数的取个位十位.......
//1.定义一个变量,赋值为一个四位数整数,例如1234
int num = 1234;
//2.通过运算操作求出个位,十位,百位,千位
int ge = num % 10;
int shi = num / 10 % 10;
int bai = num / 100 % 10;
int qian = num / 1000 % 10;
System.out.println(num + "这个四位数个位上的数字是:" + ge);
System.out.println(num + "这个四位数十位上的数字是:" + shi);
System.out.println(num + "这个四位数百位上的数字是:" + bai);
System.out.println(num + "这个四位数千位上的数字是:" + qian);
自增概念
int i = 1;
int j = i++;
/*
(1)先取i的值,放到操作数栈中
(2)i自增,i=2
(3)用操作数栈中1赋值给j
j=1,i=2
*/
int k = i++ * ++j + ++i * j++;
/*
(1)i++
先取i的值2,放到操作数栈中,紧接着i自增为3
(2)++j
j先自增为2,然后取j的值2放到操作数栈中,
(3)算* ,取出操作数栈中2 和 2 相乘结果是4
这个4重新放回操作数栈
(4)++i
i先自增为4,然后取i的值4放到操作数栈中,
(5)j++
先取j的值2到操作数栈中,紧接着j自增为3
(6)算*,取出操作数栈中4 和 2 相乘结果是8
这个8重新放回操作数栈
(7)算+
取出操作数栈中4 和 8 相加结果是12
*/
System.out.println("i = " + i);//4
System.out.println("j = " + j);//3
System.out.println("k = " + k);//12
int i = 1;
int j = i++;
/*
(1)先取出i的值1,放到操作数栈中
(2)i自增,i自增为2
(3)把操作数栈中的1赋值给j
j=1, i=2
*/
int k = i++ * ++j + --i * j--;
/*
(1)i++
先取i的值2,放到操作数栈中,紧接着i自增为3
(2)++j
j先自增为2,取j的值放到操作数栈中,
(3)算*
2*2=4
(4)--i
i先自减,i自减为2,取i的值2放到操作数栈中,
(5)j--
先取j的值2放到操作数栈中,j自减为1
(6)算*
2*2=4
(7)算+
4+4 = 8
(8)赋值给k
*/
System.out.println("i = " + i);//2
System.out.println("j = " + j);//1
System.out.println("k = " + k);//8
int i = 0;
int result = ++i/--i; //java.lang.ArithmeticException:
/*
i先自增为1,取1
i先自减为0,取0
1/0
*/
System.out.println("result="+result);
数据类型转换问题
基本数据类型的转换问题?
(1)自动类型转换(隐式转换)
A:当把存储范围小的值(常量值、变量值、表达式的结果值)
赋值给存储范围大的变量时,就会发生自动类型转换
byte->short->int->long->float->double
char->
B:boolean不参与
C:当多种数据类型的数据混合运算时,会自动提升为它们中最大的
D:当byte与byte,short与short,char与char,或者它们三个混合运算,
会自动提升为int类型。(2)强制类型转换(显式转换)
A:当把存储范围大的值(常量值、变量值、表达式的结果值)
赋值给存储范围小的变量时,就需要进行强制类型转换
格式:(存储范围小的数据类型)值这种强制类型转换会有风险,出现了溢出或损失精度。
//左边d变量是double类型,右边1常量是int类型 double d = 1;//自动类型转换,隐式转换 System.out.println(d); int i = 1; short s = 2; char c = 'a'; int result = i + s + c;//提升为int //int sum = i + s + c + d;//提升为double byte b1 = 127; byte b2 = 2; int b3 = b1 + b2; //b1+b2自动提升为int System.out.println(b3); System.out.println("---------------------"); byte b4 = (byte)(b1 + b2);//从int强制转换为byte类型 System.out.println(b4);//-127