day02.01_java基礎(chǔ)語法_案列需求介紹
* A: 需求
* a: 超市購物小票
* 含有運(yùn)算的過程
* 數(shù)據(jù)之間有關(guān)系
* 運(yùn)算結(jié)果不需要對齊
* B: 案例效果
品名 售價 數(shù)量 金額
-------------------------------------------------------------------
少林寺酥餅核桃(090115) 15.5 22 341.0
然光α移(090028) 16.0 55 880.0
尚康雜糧牡丹餅(090027) 14.5 24 348.0
-------------------------------------------------------------------
3項商品 共計:101件
總計:1569.0
憑此小票換取發(fā)票!
day02.02_java基礎(chǔ)語法_小票界面結(jié)構(gòu)分析
* A:需求分析
* a: 小票界面結(jié)構(gòu)分析
* 通過小票界面分析,可以將復(fù)雜的問題簡單化,規(guī)劃出來更為具體的需求
* b: 數(shù)據(jù)模型分析
* 實際開發(fā)過程中的數(shù)據(jù)是復(fù)雜的,存在多個維度的信息。需要分析出我具體需要操作的數(shù)據(jù)有哪些
? 邏輯分析
* c: 邏輯分析
* 在接收到最基本的必要數(shù)據(jù)后,需要加入業(yè)務(wù)邏輯來完成所有需求。如本例中,求總價的過程
* B: 小票界面結(jié)構(gòu)分析
* a: 票頭
* 票頭又分為兩部分,即歡迎光臨歡迎語與具體的物品屬性標(biāo)題
* b: 票體
* 票體是讀取的真實數(shù)據(jù)內(nèi)容,即打印對應(yīng)的變量值即可
* 這里為了簡化需求,去掉了時間與付錢找零的統(tǒng)計
* c: 票腳
* 票腳也分為兩部分,即統(tǒng)計信息與開發(fā)票的提醒信息。
* 前期為了簡化需求,我們?nèi)サ粲脩舾跺X的部分,只完成商品價錢和數(shù)量統(tǒng)計部分
----上面的內(nèi)容需求的內(nèi)容完成了
day02.03_java基礎(chǔ)語法_數(shù)據(jù)模型分析
* A: 數(shù)據(jù)模型
* 是指對現(xiàn)實事務(wù)的抽象。即將現(xiàn)實事物抽象成代碼
* B: 購物小票的數(shù)據(jù)模型分析
* a: 票體(每份物品是真正的數(shù)據(jù),一項物品應(yīng)該有如下幾個屬性)
* 品名:物品名稱,String型、
* 商品編號:用于區(qū)分管理商品的編號(和序號區(qū)分),String型
* 售價:物品單價,double型
* 數(shù)量:購買數(shù)量,原型中是小數(shù),我們這里以個為單位,設(shè)計成int型
* 金額:這一項物品的購物總金額,double型
* b: 票腳:我們發(fā)現(xiàn)三個單獨的可變化量
* 商品項數(shù):共有幾項商品,int型
* 共計:所有項商品一共多少件,int型
* 總計:所有商品花費(fèi),double型
day02.04_java基礎(chǔ)語法_邏輯分析
* A: 邏輯分析
* a: 與直接打印數(shù)據(jù)不同,這個案例的基本需求中存在許多統(tǒng)計信息,顯然類似總價這樣的值是由其他數(shù)據(jù)計算得來
* b: 普通變量值直接打印
* c: 需要計算的數(shù)據(jù)的打印
* 賦值運(yùn)算符
* 算術(shù)運(yùn)算符
day02.05_java基礎(chǔ)語法_賦值運(yùn)算符與算數(shù)運(yùn)算符簡介
* A: 什么是運(yùn)算符
* 就是對常量和變量進(jìn)行操作的符號。
* B: 賦值運(yùn)算符(=)
* 可以為變量賦值
* 把=右邊的數(shù)據(jù)賦值給左邊
* 如: int a = 10; String s = “我愛Java”;
* C: 算數(shù)運(yùn)算符(+,-,*,/,%)
* +(加法運(yùn)算),-(減法運(yùn)算),*(乘法運(yùn)算),/(除法運(yùn)算),%(取模運(yùn)算)
* /:代表除法,兩個整數(shù)相除時,只取整數(shù)部分
* %:代表當(dāng)兩整數(shù)相除時,取余數(shù)部分
* 如:int a = 301; int b = 100;a/b的值為3;a%b的值為1
* D:案例代碼
class Demo01
{
public static void main(String[] args)
{
int a = 10;
//a = 10 + 1;
//a = a + 1;
a = 2 * a;
System.out.println(a);
int b = 12;
int c = 22;
System.out.println(b+c);
System.out.println(b-c);
System.out.println(b*c);
System.out.println(c/b);
System.out.println(c%b);
}
}
day02.06_java基礎(chǔ)語法_票頭票體實現(xiàn)
* A: 票頭票體實現(xiàn)分析
* a: 由于小票邏輯比較簡單,并且沒有使用更為高級的語法,所有變量順序打印即可
* b: 票頭打印,都是字符串信息,直接打印即可
* c: 票體打印
* 以商品為單位定義變量,分別為3個商品定義對應(yīng)的屬性變量并賦值
* 如:
* String slsName = “少林寺酥餅核桃”;
* String slsID = “090115”;
* double slsPrice = 15.5;
* int slsNumber = 22;
* //定義“少林寺酥餅核桃”的金額
* double slsMoney;
* //計算“少林寺酥餅核桃”的金額
* slsMoney = slsPrice* slsNumber;
* B: 案例代碼
public class ShoppingReceipt
{
public static void main(String[] args)
{
//--------票頭-----------------------------------------
System.out.println(" 歡 迎 光 臨");
System.out.println();
System.out.println(" 品名 售價 數(shù)量 金額");
//--------票體-----------------------------------------
System.out.println("-------------------------------------------------------------------");
//定義變量:品名 編號 售價 數(shù)量 金額
//少林寺
String slsName = "少林寺酥餅核桃";
String slsID = "090115";
double slsPrice = 15.5;
int slsNumber = 22;
double slsMoney = slsPrice*slsNumber;
//然光α移
String rgName = "然光α移";
String rgID = "090028";
double rgPrice = 16;
int rgNumber = 55;
double rgMoney = rgPrice*rgNumber;
//尚康雜糧牡丹餅
String skName = "尚康雜糧牡丹餅";
String skID = "090027";
double skPrice = 14.5;
int skNumber = 24;
double skMoney = skPrice*skNumber;
System.out.println(slsName+"("+slsID+") "+slsPrice+" "+slsNumber+" "+slsMoney);
System.out.println(rgName+"("+rgID+") "+rgPrice+" "+rgNumber+" "+rgMoney);
System.out.println(skName+"("+skID+") "+skPrice+" "+skNumber+" "+skMoney);
}
}
day02.07_java基礎(chǔ)語法_票腳打印
* A: 票腳實現(xiàn)分析
* a: 商品項數(shù):本例中直接指定3項
* int totalItemsNumber = 3;
* b: 共計:所有項商品的數(shù)量和
* int totalNumber = slsNumber+其他兩項的數(shù)量;
* c: 總計:所有項商品的金額總和
* double totalMoney = slsMoney+其他兩項的金額;
? * d: 最后的開發(fā)票的提醒信息為字符串常量,直接打印即可
* B: 案例代碼
public class ShoppingReceipt
{
public static void main(String[] args)
{
//--------票頭-----------------------------------------
System.out.println(" 歡 迎 光 臨");
System.out.println();
System.out.println(" 品名 售價 數(shù)量 金額");
//--------票體-----------------------------------------
System.out.println("-------------------------------------------------------------------");
//定義變量:品名 編號 售價 數(shù)量 金額
//少林寺
String slsName = "少林寺酥餅核桃";
String slsID = "090115";
double slsPrice = 15.5;
int slsNumber = 22;
double slsMoney = slsPrice*slsNumber;
//然光α移
String rgName = "然光α移";
String rgID = "090028";
double rgPrice = 16;
int rgNumber = 55;
double rgMoney = rgPrice*rgNumber;
//尚康雜糧牡丹餅
String skName = "尚康雜糧牡丹餅";
String skID = "090027";
double skPrice = 14.5;
int skNumber = 24;
double skMoney = skPrice*skNumber;
System.out.println(slsName+"("+slsID+") "+slsPrice+" "+slsNumber+" "+slsMoney);
System.out.println(rgName+"("+rgID+") "+rgPrice+" "+rgNumber+" "+rgMoney);
System.out.println(skName+"("+skID+") "+skPrice+" "+skNumber+" "+skMoney);
//-------票腳------------------------------------------
System.out.println("-------------------------------------------------------------------");
//項數(shù)
int totalItemsNumber = 3;
//共計
int totalNumber = slsNumber + rgNumber + skNumber;
//總計
double totalMoney = slsMoney + rgMoney + skMoney;
System.out.println(totalItemsNumber+"項商品 共計:"+totalNumber+"件");
System.out.println("總計:"+totalMoney);
System.out.println("憑此小票換取發(fā)票!");
}
}
=======================ppt上的第一個階段"超市購物小票案例實現(xiàn)"===============================
day02.08_java基礎(chǔ)語法_算數(shù)運(yùn)算符詳解
* A: 算數(shù)運(yùn)算符補(bǔ)充
* a: ++(自增),--(自減)
* ++:自加。對原有的數(shù)據(jù)進(jìn)行+1
* --:自減。對原有的數(shù)據(jù)進(jìn)行-1
* 注意:
* 1: 單獨使用:
* 放在操作數(shù)的前面和后面效果一樣。(這種用法是我們比較常見的)
* 2: 參與運(yùn)算使用:
* 放在操作數(shù)的前面,先自增或者自減,然后再參與運(yùn)算
* 放在操作數(shù)的后面,先參與運(yùn)算,再自增或者自減
* 3: ++或- -為前綴時,先產(chǎn)生副作用,再使用值
* 4: ++或- -為后綴時,先使用值再產(chǎn)生副作用
* b: +(代表字符串的連接的功能)
* 只有直接與字符串相加才會轉(zhuǎn)成字符串
* c: /(除法)
* 當(dāng)兩邊為整數(shù)時,取整數(shù)部分,舍余數(shù)。當(dāng)兩邊為浮點型時,按正常規(guī)則相除
* d: %(取模)
* 為整除取余符號,小數(shù)取余沒有意義,結(jié)果的符號只和左邊有關(guān)系,與右邊無關(guān)
* e: /(除法)和%(取模)的注意事項
* a: 整數(shù)做被除數(shù),0不能做除數(shù),否則報錯
* b: 小數(shù)做被除數(shù),整除0結(jié)果為Infinity,對0取模結(jié)果為NaN
* B: 案例代碼
class Demo01
{
public static void main(String[] args)
{
//++&--
//++在前:先產(chǎn)生副作用,再使用變量值
//++在后:先使用變量值,再產(chǎn)生副作用
System.out.println("===============================");
int d = 10; // 10
d++; // 11
++d; // 12
System.out.println(d++); //執(zhí)行的過程中,由于++在后所以先用值12,執(zhí)行完這局話后,再產(chǎn)生副作用+1,d變量的值是13
System.out.println(++d); //執(zhí)行的過程中,由于++在前所以先產(chǎn)生副作用+1,再用值14,執(zhí)行完這局話后,d變量的值是14
//+法的連接字符串功能,直接 與字符串相加則變?yōu)樽址? int e = 100;
int f = 5;
System.out.println("我的得分是"+100+5);
System.out.println(100+5+"是我的得分");
//除法/用于小數(shù)計算
double g = 100.1;
double h = 100;
System.out.println(g/h);
//取模%的符號問題:取模的符號與%前邊的數(shù)符號相同
int i = -99;
int j = 100;
System.out.println(i%j);
//0不能做除數(shù)
//System.out.println(1/0);
}
}
day02.09_java基礎(chǔ)語法_賦值運(yùn)算符詳解
* A:賦值運(yùn)算符有哪些
* a:基本的賦值運(yùn)算符:=
* 把=右邊的數(shù)據(jù)賦值給左邊。
* b:擴(kuò)展的賦值運(yùn)算符:+=,-=,*=,/=,%=
* += 把左邊和右邊做加法,然后賦值給左邊
* 諸如+=這樣形式的賦值運(yùn)算符,會將結(jié)果自動強(qiáng)轉(zhuǎn)成等號左邊的數(shù)據(jù)類型
運(yùn)算符 運(yùn)算規(guī)則 范例 結(jié)果
= 賦值 int a=2 2
+= 加后賦值 int a=2,a+=2 4
-= 減后賦值 int a=2,a-=2 0
*= 乘后賦值 int a=2,a*=2 4
/= 整除后賦值 int a=2,a/=2 1
%= 取模后賦值 int a=2,a%=2 0
day02.10_java基礎(chǔ)語法_追加需求
* A: 超市購物小票追加需求
* a: 總價打折
* 如:如果商品總價超過1000元,并且少林寺酥餅核桃購買超過30份, 則總價打九折(運(yùn)算符:邏輯,比較,三元)
* b: 購物數(shù)量等信息可以手工輸入
* 購買商品數(shù)量由用戶選擇(Scanner鍵盤錄入商品數(shù)量)
* c: 截取有效的商品名稱
* 如果商品名稱超過7個字,則截取前7個字加…完成小票商品名
* d: 總金額四舍五入
* 使用工具類操作數(shù)字,將最終總價四舍五入(Math)
day02.11_java基礎(chǔ)語法_比較運(yùn)算符
* A: 比較運(yùn)算符有哪些(關(guān)系運(yùn)算符,條件運(yùn)算符)
* ==,!=,>,>=,<,<=
* 注意事項:
* 無論你的操作是簡單還是復(fù)雜,結(jié)果是boolean類型
* "=="不能寫成"="
* B: 案例代碼
public class Demo02
{
public static void main(String[] args)
{
int a = 100;
int b = 200;
System.out.println(a<b);
System.out.println(a<=b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
day02.12_java基礎(chǔ)語法_邏輯運(yùn)算符
* A: 邏輯運(yùn)算符
* a: 概念
* 邏輯是在中學(xué)數(shù)學(xué)中學(xué)習(xí)的概念,是判斷是非關(guān)系的運(yùn)算。所以邏輯運(yùn)算符操作的均為布爾值:true與false
* b: && 短路與,即并且,有假則假,同時滿足兩個條件
* 特點:&&具有短路效果。左邊是false,右邊不執(zhí)行
* c: || 短路或,即或者,有真則真,只要滿足一個條件即可
* 具有短路效果.左邊是true,右邊不執(zhí)行
* B: 案例代碼
public class Demo03
{
public static void main(String[] args)
{
System.out.println(true && true); //結(jié)果為 true
System.out.println(true && false); //結(jié)果為false
System.out.println(false && true); //結(jié)果為false
System.out.println(false && false); //結(jié)果為false
System.out.println("========================================");
System.out.println(true || true); //結(jié)果為 true
System.out.println(true || false); //結(jié)果為 true
System.out.println(false || true); //結(jié)果為 true
System.out.println(false || false); //結(jié)果為false
System.out.println("========================================");
System.out.println(!true); //結(jié)果為 true
System.out.println(!false); //結(jié)果為false
}
}
day02.13_java基礎(chǔ)語法_三元運(yùn)算符
* A: 三元運(yùn)算符
* a: 概念
* 用來完成簡單的選擇邏輯,即根據(jù)條件判斷,從兩個選擇中選擇一種執(zhí)行
* b: 使用格式
* (條件表達(dá)式)?表達(dá)式1:表達(dá)式2;
* c: 運(yùn)算規(guī)則
* 1: 判斷條件表達(dá)式,結(jié)果為一個布爾值
* 2: true,運(yùn)算結(jié)果為表達(dá)式1
* 3: false,運(yùn)算結(jié)果為表達(dá)式2
* B: 案例代碼
public class Demo04
{
public static void main(String[] args)
{
int a = 10;
int b = 20;
int c;
//三元運(yùn)算符的結(jié)果必須被使用
//a == b? 10:20;
//20;
//System.out.println(a == b? 10:20);
System.out.println(a == b? (c=10):(c=20));
System.out.println(c);
}
}
=======================ppt上的第二個階段"運(yùn)算符"===============================
day02.14_java基礎(chǔ)語法_客戶鍵盤錄入界面分析
* A: 需求分析
* a: 數(shù)量應(yīng)為客戶輸入的,在完成輸入數(shù)據(jù)這個需求時用到了我們需要介紹的引用數(shù)據(jù)類型
* b: 增加物品展示與提示用戶輸入頁面
* 想讓用戶輸入信息,應(yīng)該先為用戶展示都有哪些商品,再讓用戶輸入,所以可以參照第1天的商品報價單,提示信息后,依次輸入購買個數(shù)
* 商品報價單->用戶輸入商品數(shù)量->購物小票
* B: 引用數(shù)據(jù)類型
* a: 定義格式
* 數(shù)據(jù)類型 變量名 = new 數(shù)據(jù)類型();
* b: 使用方法
* 變量名.方法名();
day02.15_java基礎(chǔ)語法_鍵盤錄入
* A: 鍵盤錄入的步驟
* a: 導(dǎo)包import java.util.Scanner;
* b:創(chuàng)建鍵盤錄入對象 Scanner sc = new Scanner(System.in);
* c: 讀取鍵盤錄入的一個整數(shù)
* int enterNumber = sc.nextInt();
* d: 讀取鍵盤錄入的字符串
* String enterString = sc.next();
* B: 案例代碼
import java.util.Scanner;
public class Demo05Scanner{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int enterNumber = sc.nextInt();
System.out.println("用戶輸入的整數(shù)為"+enterNumber);
String enterString = sc.next();
System.out.println("用戶輸入的字符串為"+enterString);
}
}
day02.16_java基礎(chǔ)語法_字符串長度與截取方法
* A: String類(字符串)的使用
* a: String是引用數(shù)據(jù)類型,必須先創(chuàng)建對象再使用
* b: 使用方法
* 1: 創(chuàng)建字符串對象
* String s = new String("i love java");
* String s = "i love java";
* 2: 調(diào)用方法完成功能
* length():獲取該字符串長度(注意length是方法,不是屬性)
* substring(m,n)方法:截取字符串,返回一個新的字符串
* 索引:將內(nèi)容從0開始編號
* 包含頭,不包含尾
* 將調(diào)用方法的字符串從m截取到n
* trim():去掉兩端空白
* B: 案例代碼
public class Demo06String
{
public static void main(String[] args)
{
String s = "i love java";
int len = s.length();
System.out.println(len);
String newString = s.substring(0,7);
System.out.println(newString);
String s2 = "\t i love java ";
String s3 = s2.trim();
System.out.println(s2);
System.out.println(s3);
}
}
day02.17_java基礎(chǔ)語法_Math類四舍五入功能
* A: Math類
* 特點
* Math同為引用類型,但其使用方法與一般引用類型不同,不需要創(chuàng)建對象,直接使用,在學(xué)習(xí)完static關(guān)鍵字后會理解。
* 使用格式
* Math.方法名(給予所需數(shù)據(jù));
* Math.round(小數(shù)):對給定的小數(shù)進(jìn)行四舍五入
* B:案例代碼
public class Demo07Math
{
public static void main(String[] args)
{
double number = 12.45;
double afterNumber = Math.round(number);
System.out.println(afterNumber);
}
}
day02.18_java基礎(chǔ)語法_類型轉(zhuǎn)換
* A: 類型轉(zhuǎn)換
* a: 隱式類型轉(zhuǎn)換
* 取值范圍小的數(shù)據(jù)類型與取值范圍大的數(shù)據(jù)類型進(jìn)行運(yùn)算,會先將小的數(shù)據(jù)類型提升為大的,再運(yùn)算
* byte < short < int < Long < float < double
* b: 強(qiáng)制類型轉(zhuǎn)換
* 將現(xiàn)有類型強(qiáng)制轉(zhuǎn)換成所需要的類型,但是如果超出了被賦值的數(shù)據(jù)類型的取值范圍得到的結(jié)果會與你期望的結(jié)果不同
* 格式:轉(zhuǎn)后的類型 變量 = (轉(zhuǎn)后的類型)轉(zhuǎn)前的類型值;
* 如: int i = (int)6.718; //i的值為6
或
double d = 3.14;
int i2 = (int)d; //i2的值為3
* B: 案例代碼
public class Demo07Math
{
public static void main(String[] args)
{
int number2 = (int)3.0;
System.out.println(number2);
}
}
=======================================這是ppt中的一個階段==========================================
day02.19_java基礎(chǔ)語法_實現(xiàn)打折邏輯
* A: 案例代碼(實現(xiàn)了打折邏輯)
public class ShoppingReceipt
{
public static void main(String[] args)
{
//--------票頭-----------------------------------------
System.out.println(" 歡 迎 光 臨");
System.out.println();
System.out.println(" 品名 售價 數(shù)量 金額");
//--------票體-----------------------------------------
System.out.println("-------------------------------------------------------------------");
//定義變量:品名 編號 售價 數(shù)量 金額
//少林寺
String slsName = "少林寺酥餅核桃";
String slsID = "090115";
double slsPrice = 15.5;
int slsNumber = 32;
double slsMoney = slsPrice*slsNumber;
//然光α移
String rgName = "然光α移";
String rgID = "090028";
double rgPrice = 16;
int rgNumber = 55;
double rgMoney = rgPrice*rgNumber;
//尚康雜糧牡丹餅
String skName = "尚康雜糧牡丹餅";
String skID = "090027";
double skPrice = 14.5;
int skNumber = 24;
double skMoney = skPrice*skNumber;
System.out.println(slsName+"("+slsID+") "+slsPrice+" "+slsNumber+" "+slsMoney);
System.out.println(rgName+"("+rgID+") "+rgPrice+" "+rgNumber+" "+rgMoney);
System.out.println(skName+"("+skID+") "+skPrice+" "+skNumber+" "+skMoney);
//-------票腳------------------------------------------
System.out.println("-------------------------------------------------------------------");
//項數(shù)
int totalItemsNumber = 3;
//共計
int totalNumber = slsNumber + rgNumber + skNumber;
//總計
//double totalMoney = slsMoney + rgMoney + skMoney;
//加入打折邏輯:總價超過1000,少林寺酥餅核桃超過30個單位,打折九折
double beforeTotalMoney = slsMoney + rgMoney + skMoney;
//boolean ifCheap = (beforeTotalMoney >= 1000 && slsNumber >= 30);
//double totalMoney = ifCheap ? beforeTotalMoney*0.9 : beforeTotalMoney;
double totalMoney = (beforeTotalMoney >= 1000 && slsNumber >= 30)? beforeTotalMoney*0.9 : beforeTotalMoney;
System.out.println(totalItemsNumber+"項商品 共計:"+totalNumber+"件");
System.out.println("總計:"+totalMoney);
System.out.println("憑此小票換取發(fā)票!");
}
}
day02.20_java基礎(chǔ)語法_實現(xiàn)用戶錄入數(shù)量
* A:案例代碼(實現(xiàn)鍵盤錄入數(shù)量的功能,其它功能暫不實現(xiàn))
import java.util.Scanner;
public class ShoppingReceipt2
{
public static void main(String[] args)
{
//少林寺
String slsName = "少林寺酥餅核桃";
String slsID = "090115";
double slsPrice = 15.5;
int slsNumber;
double slsMoney;
//然光α移
String rgName = "然光α移";
String rgID = "090028";
double rgPrice = 16;
int rgNumber;
double rgMoney;
//尚康雜糧牡丹餅
String skName = "尚康雜糧牡丹餅";
String skID = "090027";
double skPrice = 14.5;
int skNumber;
double skMoney;
//打印貨品報價單
System.out.println(" 貨品報價單");
System.out.println(" 編號 貨物名稱 物品單價");
System.out.println(slsID+" "+slsName+" "+slsPrice);
System.out.println(rgID+" "+rgName+" "+rgPrice);
System.out.println(skID+" "+skName+" "+skPrice);
//創(chuàng)建Scanner對象,用于用戶輸入數(shù)量。
Scanner sc = new Scanner(System.in);
System.out.println("請輸您要購買的少林寺酥餅核桃核桃核桃核桃核桃核桃數(shù)量:");
slsNumber = sc.nextInt();
slsMoney = slsNumber * slsPrice;
System.out.println("請輸您要購買的然光α移數(shù)量:");
rgNumber = sc.nextInt();
rgMoney = rgNumber * rgPrice;
System.out.println("請輸您要購買的尚康雜糧牡丹餅數(shù)量:");
skNumber = sc.nextInt();
skMoney = skNumber * skPrice;
}
}
day02.21_java基礎(chǔ)語法_實現(xiàn)商品名稱判斷截取
* A: 案例代碼(實現(xiàn)商品名稱截取)
import java.util.Scanner;
public class ShoppingReceipt2 {
public static void main(String[] args) {
// 少林寺
String slsName = "少林寺酥餅核桃核桃核桃核桃核桃核桃";
String slsID = "090115";
double slsPrice = 15.5;
int slsNumber;
double slsMoney;
// 然光α移
String rgName = "然光α移";
String rgID = "090028";
double rgPrice = 16;
int rgNumber;
double rgMoney;
// 尚康雜糧牡丹餅
String skName = "尚康雜糧牡丹餅";
String skID = "090027";
double skPrice = 14.5;
int skNumber;
double skMoney;
// 打印貨品報價單
System.out.println(" 貨品報價單");
System.out.println(" 編號 貨物名稱 物品單價");
System.out.println(slsID + " " + slsName + " "
+ slsPrice);
System.out.println(rgID + " " + rgName + " "
+ rgPrice);
System.out.println(skID + " " + skName + " "
+ skPrice);
// 創(chuàng)建Scanner對象,用于用戶輸入數(shù)量。
Scanner sc = new Scanner(System.in);
System.out.println("請輸您要購買的少林寺酥餅核桃核桃核桃核桃核桃核桃數(shù)量:");
slsNumber = sc.nextInt();
slsMoney = slsNumber * slsPrice;
System.out.println("請輸您要購買的然光α移數(shù)量:");
rgNumber = sc.nextInt();
rgMoney = rgNumber * rgPrice;
System.out.println("請輸您要購買的尚康雜糧牡丹餅數(shù)量:");
skNumber = sc.nextInt();
skMoney = skNumber * skPrice;
// ---------票頭-----------------------------------------
// 定義變量:品名 編號 售價 數(shù)量 金額
System.out.println(" 歡 迎 光 臨");
System.out.println();
System.out
.println(" 品名 售價 數(shù)量 金額");
System.out
.println("-------------------------------------------------------------------");
// --------票體-----------------------------------------
// 分別判斷三種貨品的名稱
// 滿足:slsName.length()>7
// 截取
// slsName = slsName.substring(0,7)+"...";
// 不滿足:slsName.length()>7
// 保持原樣
slsName = slsName.length() > 7 ? slsName.substring(0, 7) + "..."
: slsName;
rgName = rgName.length() > 7 ? rgName.substring(0, 7) + "..." : rgName;
skName = skName.length() > 7 ? skName.substring(0, 7) + "..." : skName;
System.out.println(slsName + "(" + slsID + ") " + slsPrice
+ " " + slsNumber + " " + slsMoney);
System.out.println(rgName + "(" + rgID + ") " + rgPrice
+ " " + rgNumber + " " + rgMoney);
System.out.println(skName + "(" + skID + ") " + skPrice
+ " " + skNumber + " " + skMoney);
// -------票腳------------------------------------------
System.out
.println("-------------------------------------------------------------------");
// 項數(shù)
int totalItemsNumber = 3;
// 共計
int totalNumber = slsNumber + rgNumber + skNumber;
// 總計
// 加入打折邏輯:總價超過1000,少林寺酥餅核桃超過30個單位,打折九折
double beforeTotalMoney = slsMoney + rgMoney + skMoney;
// boolean ifCheap = (beforeTotalMoney >= 1000 && slsNumber >= 30);
// double totalMoney = ifCheap ? beforeTotalMoney*0.9 :
// beforeTotalMoney;
double totalMoney = (beforeTotalMoney >= 1000 && slsNumber >= 30) ? beforeTotalMoney * 0.9
: beforeTotalMoney;
// 將總計四舍五入,并強(qiáng)轉(zhuǎn)為整數(shù)
totalMoney = Math.round(totalMoney);
System.out.println(totalItemsNumber + "項商品 共計:" + totalNumber
+ "件");
System.out.println("總計:" + (int) totalMoney);
System.out.println("憑此小票換取發(fā)票!");
}
}
day02.22_java基礎(chǔ)語法_總計四舍五入
* A:案例代碼(總計四舍五入)
* 上面實現(xiàn)商品名稱截取功能時已經(jīng)實現(xiàn)了總計的四舍五入(看最后四行代碼)
day02.23_java基礎(chǔ)語法_運(yùn)算符總結(jié)
* A: 運(yùn)算符總結(jié)
* a: 關(guān)系運(yùn)算符
* >=(表示或者的關(guān)系,大于或者等于),<=(表示或者的關(guān)系,小于或者等于)
* b: 邏輯運(yùn)算符
* 邏輯運(yùn)算符一般用于連接boolean類型的表達(dá)式或者值
* &邏輯與:有false則false。
* |邏輯或:有true則true。
* ^邏輯異或:相同為false,不同為true。
* !邏輯非:非false則true,非true則false。
* c: &&和&的區(qū)別?
* 最終結(jié)果一樣。
* &&具有短路效果。左邊是false,右邊不執(zhí)行。
* &是無論左邊是false還是true,右邊都會執(zhí)行
* d: ||和|的區(qū)別?
* 最終結(jié)果一樣
* ||具有短路效果.左邊是true,右邊不執(zhí)行
* |是無論左邊是false還是true,右邊都會執(zhí)行
* e: 開發(fā)中最常用:&&,||,!
day02.24_java基礎(chǔ)語法_引用數(shù)據(jù)類型與基本數(shù)據(jù)類型(復(fù)習(xí)引用數(shù)據(jù)類型)
* A: 引用數(shù)據(jù)類型
* a: 引用類型變量賦值格式
* 數(shù)據(jù)類型 變量名 = new 數(shù)據(jù)類型(固定參數(shù));
* 這里的new 數(shù)據(jù)類型(固定參數(shù))是用來創(chuàng)建引用類型實例(對象),而變量的值就是這個實例。使用該變量,就是使用這個實例。
* b:引用類型調(diào)用方法格式
* 變量名.方法名();
* 當(dāng)調(diào)用方法后,經(jīng)常會有一個功能執(zhí)行后的執(zhí)行結(jié)果,這里叫做返回值。該值就是一個數(shù)值,可以為其他變量賦值或參與計算。
* c: 使用步驟
* 導(dǎo)入引用類型變量所在包,使用import來進(jìn)行導(dǎo)包
* 定義引用類型變量并創(chuàng)建實例賦值給變量
* 使用引用類型變量調(diào)用方法,完成功能
* B:鍵盤錄入的步驟(Scanner是用來接收鍵盤錄入信息的引用類型。)
* a: 導(dǎo)包import java.util.Scanner;
* b:創(chuàng)建鍵盤錄入對象 Scanner sc = new Scanner(System.in);
* c: 讀取鍵盤錄入的一個整數(shù)
* int enterNumber = sc.nextInt();
* d: 讀取鍵盤錄入的字符串
* String enterString = sc.next();
* C: Math(數(shù)學(xué)工具類)的使用
* Math類是數(shù)學(xué)工具類,提供了許多數(shù)學(xué)算法方便數(shù)字運(yùn)算。
? * 所屬包:java.lang.Math java.lang包下的所有類無需導(dǎo)入,可以直接使用
? * 創(chuàng)建實例格式:Math比較特殊,不需要創(chuàng)建實例可以直接使用Math.方法的形式完成方法調(diào)用
? * 方法簡介
public static int min(int a,int b) 求兩個數(shù)的最大值
public static int max(int a,int b) 求兩個數(shù)的最小值
public static long round(double a) 四舍五入
public static double ceil(double a) 向上取整
public static double floor(double a) 向下取整
* D: String(字符串)類的使用
* String是引用數(shù)據(jù)類型的一種,是特殊的引用數(shù)據(jù)類型,代表字符串類型。
? * 所屬包:java.lang.String
? * 創(chuàng)建實例格式:String直接使用 雙引號字面值常量即可創(chuàng)建實例
? * 方法簡介
public int length()用來返回字符串長度
public String trim()用來去除字符串兩端空白
public String substring(開始索引,結(jié)束索引)用來截取大字符串中小字符串的一部分, 包含頭不包含尾等。
* E: 案例代碼
public class Demo07Math
{
public static void main(String[] args)
{
double a = Math.ceil(-3.14);
double b = Math.floor(-3.14);
System.out.println(a);
System.out.println(b);
String s2 = "\t i love java ";
String s3 = s2.trim();
System.out.println(s2);
System.out.println(s3);
}
}
day02.25_總結(jié)
- 把今天的知識點總結(jié)一遍。