1、viod public method() {
int i=1,j;
float f1=0.1; float f2=123; //f1=0.1f
long l1=12345678,l2=8888888888; //long l1=12345678L;l2=8888888888L
double d1=2e20,d2=124;
byte b1=1,b2=2,b3=129;//溢出
j=j+10;//并未赋值
i=i/10;
i=i*0.1;
char c1='a',c2=125;
byte b=b1-b2;
char c=c1+c2-1;//需强制转换
float f3=f1+f2;
float f4=f1+f2*0.1;
double d=d1*i+j;
float f=(float)(d1*5+d2);
}
2、
(1)(操作符)有如下代码:
int a = 5;
int b = (a++) + (--a) +(++a);
问执行完之后,b 的结果是多少?
b的结果为:16
(注:b=a++此时b=5,a=6;
--a=5;
++a=6;
)
(2)(基本类型的运算)一家商场在举行打折促销,所有商品都进行8 折优惠。一
位程序员把这个逻辑写成:
short price = ...; // 先计算出原价
short realPrice = price * 8 / 10; //再计算出打折之后的价格
问:这段代码是否正确?如果正确,假设price 为100 ,那计算之后的
realPrice值为多少?如果不正确,应该怎么改正?
把完整代码写出来
不正确
代码如下:
public class Demo {
public static void main(String[] args) {
short price = 100;
double realPrice = price * 8 / 10;
System.out.println( realPrice);
}
}
运算结果为:80.0
(3)关于运算符的作业
随机给出一个五位数的彩票号码(正整数),程序输出该彩票号码中的数字及相关信息
1)在主类的main方法中声明一个用于存放彩票号码的int型变量fticketNumber,以及
用于存放彩票号码中个位、十位、百位、千位和万位上数字的byte型变量a1、a2、a3、
a4和a5。
2)?依次求出ticketNumber中个位、十位、百位、千位和万位上的数字,并将这些数字依
次赋值给变量a1、a2、a3、a4和a5。0;
3)输出表达式a1+a2+a3-a4+a5的值。
4)输出表达式a1*a2*a3*a4*a5的值。
代码如下:
package java_1028;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请输入彩票号码:");
int ticketNumber=input.nextInt();
int g=0,s=0,b=0,q=0,w=0;
g=ticketNumber%10;
s=(ticketNumber/10)%10;
b=(ticketNumber/100)%10;
q=(ticketNumber/1000)%10;
w=(ticketNumber/10000)%10;
byte a1=(byte)g,a2=(byte)s,a3=(byte)b,a4=(byte)q,a5=(byte)w;
System.out.println(a1+" "+a2+" "+a3+" "+a4+" "+a5);
System.out.println(a1+a2+a3-a4+a5);
System.out.println(a1*a2*a3*a4*a5);
}
}