Java學習總結3 Scanner 類來獲取使用者的鍵盤輸入資料以及運算子的使用

路易斯十三發表於2020-11-04

關係運算子

、<、>=、<=、==、!=用於判斷兩個資料之間的大小關係,計算結果為boolean,如果成立返回為true,否則為false

==和=的區別:

  • k=100;這是賦值運算子,意思是將=右邊的計算結果儲存在=左邊的變數中
  • k==100這是比較計算,意思是判斷k是否值為100;如果是則返回true,否則false
    !=意思是判斷是否不等於,表示如果相等時返回false,否則返回true
  • 由於浮點數無法精確存放,所以判斷k==1.0這個寫法是錯誤的,正確寫法: a-b的絕對值小於1e-6
    Java提供了一個工具類Math,其中包含一個abs()的方法實現求絕對值
  • 內部實現是通過StrictMath實現的,其中通過對等類提供計算實現
  • Math.sqrt() : 計算平方根
  • Math.abs() : 取絕對值
  • Math.ceil(): 天花板的意思,就是逢餘進一
  • Math.floor() : 地板的意思,就是逢餘舍一
  • Math.round(): 四捨五入,float時返回int值,double時返回long值
double kk=-15.6;
System.out.println(Math.ceil(kk));//-15.0
System.out.println(Math.floor(kk));//-16.0
System.out.println(Math.round(kk));//-16

Math.abs(d1-1)<1e-6 判斷浮點型別的變數d1的值是否為1
需求:
使用者輸入身高和提供,計算對應的BMI指數值。BMI指數(英文為Body Mass Index,簡稱BMI),是用體重千克數除以身高米數的平方得出的數字,是國際上常用的衡量人體胖瘦程度以及是否健康的一個標準

偏瘦:18.5以下、正常:18.5-23.9、超重:≥24、偏胖:24~27.9、肥胖:≥28。

  • 如何接受使用者鍵盤錄入
    • 可以通過 Scanner 類來獲取使用者的鍵盤輸入資料
    • 使用方法:
Scanner s = new Scanner(System.in);  //建立一個Scanner物件,通過這個物件中的方法才能實現接受使用者鍵盤錄入資料
//提供的方法有nextXxx()用於接受對應資料型別的使用者鍵盤錄入,自動進行資料型別換換,如果轉換失敗則報異常InputMismatchException
Scanner sc = new Scanner(System.in);
int kk=sc.nextInt();
double dd=sc.nextDouble();

如何編碼實現

public class Test2 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入身高,單位為米");
		double height = sc.nextDouble();//程式碼執行到這裡時,會阻塞等待使用者輸入資料,如果使用者輸入合法則自動賦值給變數height。直接回車則繼續等待使用者輸入,如果輸入資料不合法則報錯
		System.out.println("請輸入體重,單位為千克");
		double weight = sc.nextDouble();
		double bmi = weight / Math.pow(height, 2);
		if (bmi < 18.5)
			System.out.println("偏瘦");
		else if (bmi < 23.9) //等價於  bmi>=18.5 並且  bmi<23.9
			System.out.println("正常");
		else {
			System.out.println("超重");
			if (bmi < 27.9)
				System.out.println("偏胖");
			else
				System.out.println("肥胖");
		}
	}
}

如何實現接受使用者的鍵盤錄入資料

//建立一個變數指向鍵盤錄入
Scanner sc = new Scanner(System.in);
//通過這個變數讀取使用者鍵盤錄入的資料,如果使用者不輸入則一直等待,如果輸入的資料不是浮點數,則報錯
double height=sc.nextDouble();

//變數sc中是Java提供的具體實現方法nextDouble實現從鍵盤讀取一個浮點數,如果要求使用者輸入int,則方法為nextInt,。。。

如何實現螢幕輸出

System.out.println("具體需要輸出的內容");輸出內容後會自動換行,如果不需要換行,則使用方法System.out.print("")

System.out.println("num:"+num);意思是輸出【num:123】
System.out.println("num:num")意思是輸出【num:num】

邏輯運算子

並且&&、或者 ||、不是 !。注意:邏輯計算支援短路操作
表達多個條件之間的關係。例如年齡大於等於18並且年齡小於65【age>=18 && age<65】
&&:與運算,含義是兩個條件必須同時成立,可以翻譯為並且

//年齡大於等於18並且年齡小於65
age>=18 && age<65
//演算法規則:同真則真,其餘為假

||:或運算,含義是兩個條件中成立一個即可,可以翻譯為或者

//年齡小於18歲或者年齡不小於65
age<18 || age>=65
//演算法規則:同假則假,否則為真

!:非運算,含義是不是,用於對某個條件進行否定

//年齡不小於18
//寫法1:
age >=18
//寫法2: 
!(age<18//演算法規則:非真則假,非假則真

賦值運算子
=,+=,-=,*=,/=,%=

int k=100; 含義是將100賦值儲存在k對應的儲存單元中
k=k+3可以簡寫為k+=3 -= */ /=類似,自動型別轉換

相關文章