一、void public method(){
int i=1,j;
float f1=0.1; //0.1后面要加f
float f2=123; //123后面加f
long l1=12345678,l2=8888888888 //后面要带l
byte b1=1,b2=2,b3=129;// b3应该改为int型 因为byte类型的表数范围是-128~127
j=j+10; //此处j没有被赋值,因此错误。
i=i/10;
i=i*0.1;// i*0.1是double型, 而等号左边的i是int型 所以要自动转换,写成i=(int)i*0.1;
char c1='a',ca=125;
byte b = b1-b2; //b1-b2 的结果为int 型要强制转换成byte型, 写成 byte b=(byte)(b1-b2);
char c =c1+c2-1; //c1+c2-1结果为int 型要强制转换成char型,写成char c=(char)(c1+c2-1);
float f3= f1+f2;
float f4= f1+f2*0.1;//0.1为double型, 所以最后的结果要写成double型。即double f4=f1+f2*0.1;
double d =d1*i+j; //j 没有被赋值
float f =(float)(d1*5+d2);
}
二、 (操作符)有如下代码:
int a=5;
int b=(a++)+(--a)+(++a);
问执行完后, b 的结果是多少?
答案: (a++)=5 此时a=6
(--a )=5 此时a=5
(++a)=6 此时a=6
所以 b=16.
三、(基本类型运算)一家商场在举行打折促销,所有商品都进行8折优惠。一位程序员把这个逻辑写成:
short price=....;//先计算出原价
short realPrice=price*8/10;//在计算出打折之后的价格
问:这段代码是否正确?如果正确,假设price为100, 那计算之后的realPrice值为多少?如果不正确,应该怎么改正?把完整代码写出来
答案: 这段代码是错误的。short是段整型,price*8/10 正确的结果是带小数的所以应该是double类型;
正确的代码如下:
import java.util.Scanner;
public class SunMingming1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入消费金额:");
Scanner sc =new Scanner(System.in);
double b=sc.nextDouble();
double c=b*8/10;
System.out.println("打8折后的价格为:"+c);
}
}
四、关于运算符的作业
随机给出一个五位数的彩票号码(正整数),程序输出该彩票号码中的数字及相关信息
(1)在主类的main方法中声明一个用于存放彩票号码的int型变量ticketNumber,以及用于存放彩票号码中个位、十位、百位、千位和万位上数字的byte型变量a1、a2、a3、a4、a5.
(2)依次求出ticketNumber 中个位、十位、百位、千位和万位上数字,并将这些数字依次赋值给变量a1、a2、a3、a4、a5.
(3)输出表达式a1+a2+a3+a4+a5的值
(4)输出表达式a1*a2*a3*a4*a5的值
import java.util.Scanner;
public class SunMingming1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int tickerNumber;
byte a1,a2,a3,a4,a5;
System.out.println("输入一个五位数的彩票号码:");
Scanner sc=new Scanner(System.in);
int b=sc.nextInt();
a5=(byte) (b/10000);
a4=(byte)((b/1000)%10);
a3=(byte)((b/100)%10);
a2=(byte)((b/10)%10);
a1=(byte)(b%10);
System.out.println("万位上的数字为:"+a5);
System.out.println("千位上的数字为:"+a4);
System.out.println("百位上的数字为:"+a3);
System.out.println("十位上的数字为:"+a2);
System.out.println("个位上的数字为:"+a1);
System.out.println("a1+a2+a3+a4+a5"+"="+a1+a2+a3+a4+a5);
System.out.println("a1*a2*a3*a4*a5"+"="+a1*a2*a3*a4*a5);
}
}