日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java基础重温_02:运算符、三元运算符案例(2只老虎、3个和尚)、键盘录入(Scanner类)、控制流程语句、控制流程语句案例(奇偶数、考试奖励)

發布時間:2023/12/14 java 33 豆豆

摘要

Java基礎重溫_02:
運算符(算術運算、+操作、賦值運算、自增自減、關系運算(比較)、邏輯運算、短路邏輯運算、三元運算)
三元運算符案例(2只老虎:2個變量比較、三個和尚:3個變量比較)
鍵盤錄入(Scanner類、三元運算符案例結合鍵盤錄入)
控制流程語句(if結構、if…else結構、if…else…if結構)
控制流程語句案例

一、運算符

運算符是對常量或者變量進行操作的符號。
運算符表達式:通過運算符連接起來的式子

1、算術運算符

加、減、乘、除、取余/取模

  • 除法(/)運算的時候,如果兩個數都是整數,結果也只能保存整數部分。要有小數,必須要有小數參數運算。
  • %叫做取余(取模),結果是余數。
  • 代碼示例

    public class OperatorDemo01 {public static void main(String[] args) {//定義兩個變量int a = 6;int b = 4;2 / 13 = 0....24/10System.out.println(a + b); //10System.out.println(a - b); //2System.out.println(a * b); //24System.out.println(a / b); //1 注意:結果是1 不是1.5 被除數以及除數都是整數,結果也是整數System.out.println(a % b); // 2 6 / 4 = 1......2//除法得到的是商,取余得到是余數6 /5 = 1.....1//整數相除只能得到整數,要想得到小數,必須有浮點數的參與System.out.println(6.0 / 4); // 1.5} }

    數據類型自動提升(算術表達式)

    算術表達式中包含多個基本數據類型的時候,整個表達式的類型會自動進行提升。
    因為在Java里面,進行運算的時候,只能有一種數據類型。

    提升規則

    • byte,short,char將被提升為int
    • 整個表達式的類型自動提升到表達式中最高等級操作數同樣的類型。
    • 等級順序:byte,short,char->int->long->float->double

    2、+操作

    字符的+操作

    public class OperatorDemo02 {public static void main(String[] args) {//定義兩個變量int i = 10;char c = 'A'; //'A'的值是65c = 'a'; //'a'的值是97c = '0'; //'0'的值是48System.out.println(i + c);int d = i + c; //int 類型 和 char類型進行運算 最高等級類型為intdouble e = 10 + 13.14; // int類型和 double類型進行運算 最高等級類型為double} }

    字符+操作原理

    字符在進行 “+” 操作的時候,是拿字符在計算機底層對應的數值來進行計算的(通過編碼表查詢字符對應的底層數值)

  • ‘A’ 對應的值是 65,A-Z是連續的
  • 'a’對應的值是 97,a-z 是連續的
  • '0’對應的值是 48,’0‘ -’9‘是連續的
  • 編碼表

    計算機底層使用二進制運算,所以文字和符號必須轉換成二進制數才能被計算機識別,編碼表就是將文字等符號編成對應的數的表格,因為二進制記錄起來比較麻煩,所以使用十進制數進行文字編碼。

    世界上第一張編碼表ASCII(美國標準信息交換碼)。常用編碼表都兼容ASCII碼表。

    常用的編碼:

    ASCII編碼:美國標準信息交換碼,世界上第一張編碼表。

    GB2312編碼:簡體中文編碼,對常用漢字進行了編碼,兼容ASCII。

    GBK:加強版的中文編碼表,對更多漢字進行了編碼,兼容ASCII

    UTF-8編碼:萬國碼表,常作為瀏覽器上的網頁編碼,可以統一顯示各國文字,兼容ASCII。

    字符串的+操作

    public class OperatorDemo03 {public static void main(String[] args) {System.out.println("it" + "heima"); // itheimaSystem.out.println("itheima" + 666); // itheima666System.out.println(666 + "itheima"); // 666itheimaSystem.out.println("黑馬" + 6 + 66); // 黑馬666System.out.println(1 + 99 + "年黑馬"); // 100年黑馬} }

    1、當“+”操作中出現字符串時,這個“+”是字符串連接符**,而不是算術運算 ,拼接的結果是字符串。例如: “itheima”+666 ->“itheima666”

    2、在“+”操作中,如果出現了字符串,就是連接運算符,否則就是算術運算符。當連續進行“+”操作時,從左往右逐個執行。 例如: 1 + 99 + “年黑馬” -> “100年黑馬”

    小結

    一個表達式里面,如果沒有碰到字符串,前面的+號表示的都是算術運算符,然后,一旦碰到了字符串之后,后面的+號表示的都是拼接

    4、賦值運算符

    賦值運算符的特點(隱含強制類型轉換)

    擴展的賦值運算符隱含了強制類型轉換

    5、自增自減運算符

    自增運算符:變量本身+1

    ++

    自減運算符:變量本身-1

    --

    使用格式

    ++和–可以直接放在變量的前面或者后面。
    放在前面叫前自增/前自減
    放在后面叫后自增/后自減

    //后自增/后自減 a++; a--;//前自增/前自減 ++a; --a;

    自增自減獨立運算、與其他操作數運算的區別

    自增自減獨立運算時

    前自增與后自增沒有任何的區別。

    ? int a = 10;? a++;System.out.println(a); //11? ++a;System.out.println(a); //12

    自增自減與其他操作數運算時區別

    后自增/自減: 先給別人去使用,然后再自增/自減。

    int a = 10; int b = a++; System.out.println(a); //11 System.out.println(b); //10

    前自增/自減: 先自增/自減,然后再給別人去使用

    int a = 10; int b = ++a; System.out.println(a); //11 System.out.println(b); //11

    6、關系運算符(比較運算符)

    等于、不等于、大于、大于等于、小于、小于等于

    運算的結果要么是true 要么是false

    符號名稱說明
    ==等于a==b,判斷a和b的值是否相等,成立為true,不成立為false
    !=(!非)不等于a!=b,判斷a和b的值是否不相等,成立為true,不成立為false
    >大于a>b,判斷a是否大于b,成立為true,不成立為false
    >=大于等于a>=b,判斷a是否大于等于b,成立為true,不成立為false
    <小于a<b,判斷a是否小于b,成立為true,不成立為false
    <=小于等于a<=b,判斷a是否小于等于b,成立為true,不成立為false

    “==”與“=”的區別

    “==”表示的是判斷兩個值是否相等,
    “=”表示的是賦值

    7、邏輯運算符

    邏輯與、邏輯或、邏輯異或、邏輯非
    作用:連接關系表達式,或連接布爾類型的常量和變量
    運算結果要么是true 要么是false

    符號作用說明
    &邏輯與a&b,a和b都是true,結果為true,否則為false
    |邏輯或a|b,a和b都是false,結果為false,否則為true
    ^邏輯異或a^b,a和b結果不同為true,相同為false
    !邏輯非!a,結果和a的結果正好相反

    8、短路邏輯運算符

    短路與、短路或

    符號作用說明
    &&短路與作用和&相同,但是有短路效果 如果左邊為false就不會運行右邊的
    ||短路或作用和|相同,但是有短路效果 如果左邊為TRUE 就不會運行右邊的

    邏輯運算符和短路邏輯運算符區別:

    1、邏輯與&,無論左邊真假,右邊都要執行。

    短路與&&,如果左邊為真,右邊執行;如果左邊為假,右邊不執行。

    2、邏輯或|,無論左邊真假,右邊都要執行。

    短路或||,如果左邊為假,右邊執行;如果左邊為真,右邊不執行。

    8、三元運算符

    三元表達式的格式:

    數據類型 變量名 = 判斷表達式 ? 表達式1 : 表達式2

    運行流程:首先計算關系表達式的值,如果是true,表達式1的值就是運算結果;如果是false,表達式2的值就是運算結果

    代碼示例

    public class OperatorDemo {public static void main(String[] args) {//定義兩個變量int a = 10;int b = 20;// 獲取兩個數中較小的值int min = a > b ? b : a;//int min = a < b ? a : b;} }

    注意:使用三元運算符的時候一定需要定義變量接收結果或者是直接使用結果。

    二、三元運算符案例

    1、兩只老虎(兩個變量比較)

    需求

    使用三元運算符去判斷兩只老虎的體重是否相等,其中一只老虎體重是180kg,另外一只是200kg

    解題步驟

  • 定義兩個變量用于保存老虎的體重,單位為kg
  • 用三元運算符實現老虎體重的判斷,體重相同,返回true,否則,返回false。
  • 輸出結果
  • 代碼實現

    public class OperatorTest01 {public static void main(String[] args) {//1:定義兩個變量用于保存老虎的體重,單位為kg,這里僅僅體現數值即可。int weight1 = 180;int weight2 = 200;//2:用三元運算符實現老虎體重的判斷,體重相同,返回true,否則,返回false。boolean b = weight1 == weight2 ? true : false;//3:輸出結果System.out.println("b:" + b);} }

    2、三個和尚(三個變量比較)

    需求

    使用三元運算符去求三個和尚的最高身高,其中第一個和尚身高是150cm,第二個和尚身高是210cm,第三個和尚身高是165cm

    解題步驟

  • 定義三個變量用于保存和尚的身高,單位為cm
  • 用三元運算符獲取前兩個和尚的較高身高值,并用臨時身高變量保存起來。
  • 用三元運算符獲取臨時身高值和第三個和尚身高較高值,并用最大身高變量保存。
  • 輸出結果
  • 代碼實現

    public class OperatorTest02 {public static void main(String[] args) {//1:定義三個變量用于保存和尚的身高,單位為cm,這里僅僅體現數值即可。int height1 = 150;int height2 = 210;int height3 = 165;//2:用三元運算符獲取前兩個和尚的較高身高值,并用臨時身高變量保存起來。int tempHeight = height1 > height2 ? height1 : height2;//3:用三元運算符獲取臨時身高值和第三個和尚身高較高值,并用最大身高變量保存。int maxHeight = tempHeight > height3 ? tempHeight : height3;//4:輸出結果System.out.println("maxHeight:" + maxHeight);} }

    三、鍵盤錄入(Scanner類)

    接收鍵盤輸入的數據要使用java里面提供的Scanner類

    Scanner類使用步驟

    1、導包。導包必須放在類上邊

    import java.util.Scanner;

    2、創建對象。

    Scanner sc = new Scanner(System.in); // sc 是變量名,可以改 其他的不可以改

    3、接收數據。

    int x = sc.nextInt()

    調用的方法
    接收數字:nextInt(),nextDouble(),…
    接收字符串:next()

    代碼實現

    //導包 import java.util.Scanner; public class ScannerDemo {public static void main(String[] args) {//創建對象Scanner sc = new Scanner(System.in);//接收數據int x = sc.nextInt();//輸出數據System.out.println("x:" + x);} }

    小結

    1、Scanner的方法簡單說明
    nextlnt():只讀取int值,只能讀取整數類型的數據,如果輸入了非整型的數據(浮點型字符串等)就會報錯。

    2、next()和nextLine()的區別
    next():只讀取輸入直到空格。不能讀取兩個由空格或符號隔開的單詞。
    nextLine(): 讀取輸入,包括單詞之間的空格和除回車以外的所有符號

    更多方法查api文檔

    四、三個和尚升級版(結合Scanner類)

    需求

    使用三元運算和數據輸入兩個知識點完成比較三個和尚的最高身高

    解題步驟

  • 身高未知,采用鍵盤錄入實現。首先導包,然后創建對象。
  • 鍵盤錄入三個身高分別賦值給三個變量。
  • 用三元運算符獲取前兩個和尚的較高身高值,并用臨時身高變量保存起來。
  • 用三元運算符獲取臨時身高值和第三個和尚身高較高值,并用最大身高變量保存。
  • 輸出結果。
  • 代碼實現

    import java.util.Scanner;public class ScannerTest {public static void main(String[] args) {//身高未知,采用鍵盤錄入實現。首先導包,然后創建對象。Scanner sc = new Scanner(System.in);//鍵盤錄入三個身高分別賦值給三個變量。System.out.println("請輸入第一個和尚的身高:");int height1 = sc.nextInt();System.out.println("請輸入第二個和尚的身高:");int height2 = sc.nextInt();System.out.println("請輸入第三個和尚的身高:");int height3 = sc.nextInt();//用三元運算符獲取前兩個和尚的較高身高值,并用臨時身高變量保存起來。int tempHeight = height1 > height2 ? height1 : height2;//用三元運算符獲取臨時身高值和第三個和尚身高較高值,并用最大身高變量保存。int maxHeight = tempHeight > height3 ? tempHeight : height3;//輸出結果。System.out.println("這三個和尚中身高最高的是:" + maxHeight +"cm");} }

    五、控制流程語句

    順序結構語句

    從上到下按照代碼的順序去執行的語句

    執行流程

    代碼示例

    public class OrderDemo {public static void main(String[] args) {System.out.println("開始");System.out.println("語句A");System.out.println("語句B");System.out.println("語句C");System.out.println("結束");} }

    1、if 結構

    格式

    if(關系表達式){語句體1; }//關系表達式,即括號最終結果為true/false if(true){ ? 語句體1; }

    執行流程

  • 首先計算關系表達式的值
  • 如果關系表達式的值是true,就執行語句體1
  • 如果關系表達式的值是false,就不執行語句體1
  • 繼續執行后面的語句內容
  • 2、if…else 結構

    格式

    if(關系表達式){語句體1}else{語句體2}

    執行流程

  • 首先計算關系表達式的值
  • 如果關系表達式的值是true,就執行語句體1
  • 如果關系表達式的值是false,就執行語句體2
  • 繼續執行后面的語句內容
  • 3、if…else…if 結構

    格式

    if(關系表達式1){語句體1; }else if(關系表達式2){語句體2; } ..... else{語句體n + 1; }

    執行流程

  • 首先計算關系表達式1的值
  • 如果值為true就執行語句體1;如果值為false就計算關系表達式2的值
  • 如果值為true就執行語句體2;如果值為false就計算關系表達式3的值
  • .…
  • 如果沒有任何關系表達式為true,就執行語句體n+1。
  • 六、控制流程練習案例

    1、奇偶數案例(if…else)

    需求

    使用if…else的方式去判斷一個整數是基數還是偶數

    解題步驟

  • 為了體現任意給出一個整數,采用鍵盤錄入一個數據。(導包,創建對象,接收數據)
  • 判斷整數是偶數還是奇數要分兩種情況進行判斷,使用if…else結構
  • 判斷是否偶數需要使用取余運算符實現該功能 number % 2 == 0
  • 根據判定情況,在控制臺輸出對應的內容
  • 代碼實現

    import java.util.Scanner;public class IfTest01 {public static void main(String[] args) {//為了體現任意給出一個整數,采用鍵盤錄入一個數據。(導包,創建對象,接收數據)Scanner sc = new Scanner(System.in);System.out.println("請輸入一個整數:");int number = sc.nextInt();//判斷整數是偶數還是奇數要分兩種情況進行判斷,使用if..else結構 //判斷是否偶數需要使用取余運算符實現該功能 number % 2 == 0//根據判定情況,在控制臺輸出對應的內容if(number%2 == 0) {System.out.println(number + "是偶數");} else {System.out.println(number + "是奇數");}} }

    2、考試獎勵案例(if…else…if)

    目標

    使用if…else…if的結構完成考試獎勵

    解題步驟

  • 小明的考試成績未知,可以使用鍵盤錄入的方式獲取值
  • 由于獎勵種類較多,屬于多種判斷,采用if…else…if格式實現
  • 為每種判斷設置對應的條件
  • 為每種判斷設置對應的獎勵
  • 數據測試:正確數據,邊界數據,錯誤數據
  • 代碼實現

    import java.util.Scanner;public class IfTest02 {public static void main(String[] args) {//小明的考試成績未知,可以使用鍵盤錄入的方式獲取值Scanner sc = new Scanner(System.in);System.out.println("請輸入一個分數:");int score = sc.nextInt();//由于獎勵種類較多,屬于多種判斷,采用if...else...if格式實現//為每種判斷設置對應的條件//為每種判斷設置對應的獎勵/*if(score>=95 && score<=100) {System.out.println("山地自行車一輛");} else if(score>=90 && score<=94) {System.out.println("游樂場玩一次");} else if(score>=80 && score<=89) {System.out.println("變形金剛玩具一個");} else {System.out.println("胖揍一頓");}*///數據測試:正確數據,邊界數據,錯誤數據if(score>100 || score<0) {System.out.println("你輸入的分數有誤");} else if(score>=95 && score<=100) {System.out.println("山地自行車一輛");} else if(score>=90 && score<=94) {System.out.println("游樂場玩一次");} else if(score>=80 && score<=89) {System.out.println("變形金剛玩具一個");} else {System.out.println("胖揍一頓");}} }

    總結

    以上是生活随笔為你收集整理的Java基础重温_02:运算符、三元运算符案例(2只老虎、3个和尚)、键盘录入(Scanner类)、控制流程语句、控制流程语句案例(奇偶数、考试奖励)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。