错误:
第二行:float后面数字结尾加f
第三行:int的取值范围为-2的31次幂到2的31次幂减1
long l1 =12345678 ,是将int自动转换为long
long l1 =888888888888 超过int取值范围。
第六行:j没有赋初值
第十行:byte,short,char再做计算的时候首先把自身转换int 再运算
byte b=b1-b2,b1-b2的结果为int类型,需要强制转换==》byte b=(byte)(b1-b2)
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 practice;
import java.util.Scanner;
public class Hellowjava {
public static void main(String []args){
int ticketnumber=12345;
byte a1,a2,a3,a4,a5;
a5=(byte)(ticketnumber/10000);
a4=(byte)(ticketnumber/1000-a5*10);
a3=(byte)(ticketnumber/100-(a5*100+a4*10));
a2=(byte)(ticketnumber/10-(a5*1000+a4*100+a3*10));
a1=(byte)(ticketnumber%10);
System.out.println(a1+a2+a3+a4+a5);
System.out.println(a1*a2*a3*a4*a5);
}
}