赞
踩
1.说明基本数据类型变量之间强制类型转换的使用规则和强转可能出现的问题。
(1)使用强制转换符;
(2)强制类型转换,可能会导致精度损失(降低或溢出)
容量小的数据类型变量→容量大的数据类型变量,不会丢失原有信息。
容量大的数据类型变量→容量小的数据类型变量,可能会丢失原有信息。
2.判断是否能通过编译
1)short s = 5; s = s-2; ?
不可以, 计算时会将S - 2中的s 和 2 都是int类型,但是s 是 short类型 ,所以类型不相符。
2)byte b = 3; b = b + 4; ?
不可以,和(1)同理,b+4中的b在进行+操作时会被提升成为int类型,但是外面的b是byte类型,类型不相符。
b = (byte)(b+4); ?
可以 和上面不同的是,b+4是int类型,用(byte)将b+4强制转换成了byte类型。
3)char c = ‘a’; int i = 5; float d =0.314F; double result = c+i+d; ?
可以,char c =’a’ 用ascⅡ码得到 97 c+i==97+5==102 d 是float类型 最后结果是double类型,可以计算,精度缺失。
4)byte b = 5; short s = 3; short t = s + b; ?
不可以,同理,s+b在计算的时提升成int类型,类型不符。
3.比较 + 与 +=
short s1 = 1; s1 = s1 + 1;有什么错?
S1+1 在+运算时被提升为int类型, s1 是 short类型;
short s1 = 1; s1 += 1;有什么错
没错,+= java会把它强制转换成s1的数据类型。
4. 岳小鹏参加Java考试,他和父亲岳不群达成承诺:
如果:
成绩为100分时,奖励一辆BMW;
成绩为(80,99]时,奖励一台iphone xs max;
当成绩为[60,80]时,奖励一个 iPad;
其它时,什么奖励也没有。
请从键盘输入岳小鹏的期末成绩,并加以判断
public static void main(String[]args){ Scanner sc = new Scanner(System.in); System.out.println("请输入成绩:"); int scort = sc.nextInt(); if(scort == 100 ){ System.out.println("小鹏获得一辆BMW"); }else if (scort>80 && scort<=99){ System.out.println("获得iphone xs max"); }else if (scort>=60 && scort<=80){ System.out.println("一个ipad"); }else if(scort<60&&scort>=0){ System.out.println("什么奖励都没有"); }else{ System.out.println("输入的数据有误"); } }
5. 编写程序,声明2个int型变量并赋值。判断两数之和,如果大于等
于50,打印“hello world!” 其他情况打印 “hello China!”
public static void main(String[]args){ Scanner sc=new Scanner(System.in); System.out.print("请输入第一个数:"); int a = sc.nextInt(); System.out.print("请输入第二个数:"); int b = sc.nextInt(); if((a+b)>=50){ System.out.println("hello world!"); } else{ System.out.println("hello China!"); } }
6. 编写程序,声明2个double型变量并赋值。判断第一个数大于10.0, 且第2个数小于20.0,打印两数之和。否则,打印两数的乘积。
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入两个小数:");
double a = sc.nextDouble();
double b = sc.nextDouble();
if (a > 10.0 && b < 20.0){
System.out.println(a+b);
}else{
System.out.println(a*b);
}
}
7. 编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。
public static void main(String[]args){ Scanner sc = new Scanner(System.in); System.out.print("请输入第一个整数:"); int num1 = sc.nextInt(); System.out.print("请输入第二个整数:"); int num2 = sc.nextInt(); System.out.print("请输入第三个整数:"); int num3 = sc.nextInt(); if(num1 > num2){ if(num3>num1){ System.out.println(num2 + "、"+num1 + "、"+num3); }else if(num2 > num3){ System.out.println(num3 + "、"+num2 + "、"+num1); }else{ System.out.println(num2 + "、"+num3 + "、"+num1); }} else{ //num1<num2 if(num3>num2 ){ System.out.println(num1 + "、"+num2 + "、"+num3); }else if(num3<num1){ System.out.println(num3 + "、"+num1 + "、"+num2); }else { System.out.println(num1 + "、"+num3 + "、"+num2); } } }
8. 我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每 一年相当于人类的10.5岁,之后每增加一年就增加四岁。那么5岁的狗 相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。
编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人 类的年龄。如果用户输入负数,请显示一个提示信息。
public static void main(String[]args)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。