1. 程式人生 > >Java的知識點6—— 強制型別轉換、基本型別轉化時常見錯誤和問題、 簡單的鍵盤輸入和輸出

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