一、
错误:第二行:float后面必须加f
第三行:int的取值范围为-2的31次幂到2的31次幂减1
long后面必须加L(或l), long l1 =12345678 ,是将int自动转换为long ,无误
long l1 =888888888888 ,是将int自动转换为long ,但超过int取值范围,出错
第六行:j没有赋初值
第十行:byte,short,char再做计算的时候首先把自身转换int 再运算
byte b=b1-b2,b1-b2的结果为int类型,需要强制转换==》byte b=(byte)(b1-b2)
第十一行:??结果为221??不懂
char再做计算的时候首先把自身转换int 再运算,所以结果为int ??
第十四行: j没有初始值
第四行:科学计数法,表示为a×10^b(aEb)
第五行:byte范围为-128~127,129超范围
第八行:i为Int型,不能接受double型
第十三行:运算后结果为double
1.(操作符)有如下代码:
int a = 5;
int b = (a++) + (--a) +(++a);
问执行完之后,b 的结果是多少?
b=16
2. (基本类型的运算)一家商场在举行打折促销,所有商品都进行8 折优惠。一
位程序员把这个逻辑写成:
short price = ...; // 先计算出原价
short realPrice = price * 8 / 10; //再计算出打折之后的价格
问:这段代码是否正确?如果正确,假设price 为100 ,那计算之后的
realPrice值为多少?如果不正确,应该怎么改正?
把完整代码写出来
不正确
float price = 100;
float realPrice = price*8/10;
3.关于运算符的作业
随机给出一个五位数的彩票号码(正整数),程序输出该彩票号码中的数字及相关信息
1)在主类的main方法中声明一个用于存放彩票号码的int型变量ticketNumber,以及
用于存放彩票号码中个位、十位、百位、千位和万位上数字的byte型变量a1、a2、a3、
a4和a5。
2)?依次求出ticketNumber中个位、十位、百位、千位和万位上的数字,并将这些数字依
次赋值给变量a1、a2、a3、a4和a5。
3)输出表达式a1+a2+a34-a4+a5的值。
4)输出表达式a1*a2*a3*a4*a5的值。
package java_0511;
import java.util.Random;
public class Work1 {
public static void main(String[] args) {
int MAX = 99999,MIN = 10000;
Random rand = new Random();
int ticketNumber = rand.nextInt(MAX - MIN + 1) + MIN; // randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数
System.out.println("彩票的数字是"+ticketNumber);
int a1,a2,a3,a4,a5;
a1 = ticketNumber % 10;//个位
a2 = (ticketNumber/10)%10;//十位
a3 = (ticketNumber/100)%10;//百位
a4 = (ticketNumber/1000)%10;//千位
a5 = (ticketNumber/10000)%10;//万位
//输出彩票每一位的数字
System.out.println("个位数字:"+a1);
System.out.println("十位数字:"+a2);
System.out.println("百位数字:"+a3);
System.out.println("千位数字:"+a4);
System.out.println("万位数字:"+a5);
int sum = a1+a2+a3+a4+a5;
System.out.println("彩票每位数字相加的和为:"+sum);
int product = a1*a2*a3*a4*a5;
System.out.println("彩票每位数字相乘的积为:"+product);
}
}
输出结果: