Java的知识点6—— 强制类型转换、基本类型转化时常见错误和问题、 简单的键盘输入和输出

 强制类型转换

强制类型转换,又被称为造型用于显式的转换一个数值的类型。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。

public class Test2 {
	public static void main(String [] args) {
		double x=3.14;
		int nx=(int)x;
		char c='a';
		int d=c+1;
		System.out.println(nx);
		System.out.println(d);
		System.out.println((char)d);
		//强制类型转换的特例
		int m=300;
		byte bm=(byte)m;
		System.out.println(bm);
	}	
}

程序运行结果:

3
98
b
44

注:不能在布尔类型任何数值类型之间做强制类型转换


基本类型转化时常见错误和问题

操作比较大的数时,要留意是否溢出,尤其是整数操作时。

public class Test2 {
	public static void main(String [] args) {
		int money=1000000000;
		int years=20;
		int total=money*years;
		//返回的total是负数,超过了int的范围
		System.out.println("total="+total);
		long total1=money*years;
		//返回的total仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生了数据丢失
		System.out.println("total1="+total1);
		long total2=money*((long)years);
		//返回的total2正确:先将一个因子变成long,整个表达式发生提升。全部用long来计算。
		System.out.println("total2="+total2);
	}	
}

程序运行结果:

total=-1474836480
total1=-1474836480
total2=20000000000


 简单的键盘输入和输出

使用Scanner获取键盘输入

import java.util.Scanner;
public class Test2 {
	public static void main(String [] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入名字:");
		String name=scanner.nextLine();
		System.out.println("请输入你的爱好:");
		String favor=scanner.nextLine();
		System.out.println("请输入你的年龄:");
		int age=scanner.nextInt();
		System.out.println("######################");
		System.out.println(name);
		System.out.println(favor);
		System.out.println("来到地球的天数:"+age*365);
		System.out.println("离开地球的天数"+(72-age)*365);
	}	
}

程序运行结果:

请输入名字:
代止兮
请输入你的爱好:
睡觉
请输入你的年龄:
20
######################
代止兮
睡觉
来到地球的天数:7300
离开地球的天数18980
 

猜你喜欢

转载自blog.csdn.net/qq_39368007/article/details/83047645