Java的知識點6—— 強制型別轉換、基本型別轉化時常見錯誤和問題、 簡單的鍵盤輸入和輸出
阿新 • • 發佈:2018-12-15
強制型別轉換
強制型別轉換,又被稱為造型,用於顯式的轉換一個數值的型別。在有可能丟失資訊的情況下進行的轉換是通過造型來完成的,但可能造成精度降低或溢位。
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