国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

黑馬程序員_JavaSE學習總結第03天_Java基礎語法2

2019-11-14 23:56:54
字體:
來源:轉載
供稿:網友
黑馬程序員_javaSE學習總結第03天_Java基礎語法2

------- android培訓、java培訓、期待與您交流! ----------

03.01 數據類型中補充的幾個小問題

1:在定義Long或者Float類型變量的時候,要加L或者f。

整數默認是int類型,浮點數默認是double。

byte,short在定義的時候,他們接收的其實是一個int類型的值。

2:數據類型轉換之默認轉換:byte,short,char→int→long→float→double

為什么占用8個字節的long默認轉換為4個字節的float?

A:它們底層的存儲結構不同。

B:float表示的數據范圍比long的范圍要大

long:2^63-1

float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

3:Java語言中的字符char可以存儲一個中文漢字嗎?為什么呢?

可以。因為java語言中的字符占用兩個字節。Java語言采用的是Unicode編碼。

03.02 算術運算符的基本用法

運算符:對常量和變量進行操作的符號稱為運算符

運算符分為:算術運算符、賦值運算符、比較運算符、邏輯運算符、位運算符、三目運算符6種

算術運算符:+(加)、-(減)、*(乘)、/(除)、%(取余或取模,兩個數相除的余數)、+(連接符)、++(自增)、--(自減)

例:

1 int x = 3;2 int y = 4;3 System.out.PRintln(x + y);  //74 System.out.println(x - y);  //-15 System.out.println(x * y);  //126 System.out.println(x / y);  //0,/獲取的是除法操作的商7 System.out.println(x % y);  //3,%獲取的是除法操作的余數

注意:整數相除只能得到整數,如果想得到小數,只需把操作的數據中的任意的一個數據變為浮點數即可

如:System.out.println(x * 1.0 / y); //0.75

03.03 算術運算符++和--的用法

例1:單獨使用時

1 int x = 3;2 int y = 4;3 System.out.println("x="+x+",y="+y);  //x=3,y=44 x++;5 --y;6 System.out.println("x="+x+",y="+y);  //x=4,y=3

單獨使用時放在操作數據的前面和后面效果一樣。也就是a++或者++a效果一樣。

例2:參與操作時

1 int x = 3;2 int y = 4;3 int a = x++;4 int b = --y;5 System.out.println("x="+x+",y="+y);  //x=4,y=36 System.out.println("a="+a+",b="+b);  //a=3,b=3

參與操作時放在操作數的前面:先自增或者自減,再參與操作

放在操作數的后面:先參與操作,再自增或者自減

例3:特殊情況

1 int i = 3;2 i = i++;3 System.out.println("i="+i);  //i=3

i=i++,先進行i++運算,此時虛擬機會開辟新的空間臨時存儲i的值,然后進行i++的運算,將運算結果4賦給i,i=4,此時i++運算完成,然后將臨時存儲的i的值又賦給i,i=3

03.04 算術運算符++和--的練習

1.計算a、b、c的值

 1 int a = 10; 2 int b = 10; 3 int c = 10; 4 a = b++; 5 c = --a; 6 b = ++a; 7 a = c--; 8 System.out.println("a="+a);  //a=9 9 System.out.println("b="+b);  //b=1010 System.out.println("c="+c);  //c=8

2.計算x、y的值

1 int x = 4;2 int y = (x++)+(++x)+(x*10);  //4+6+603 System.out.println("x="+x);  //x=64 System.out.println("y="+y);  //y=70

03.05 算術運算符+的多種用法

+的用法:加法、正號、字符串連接符

例:

1 System.out.println(3 + 4);  //加法,72 System.out.println(+5);  //正號,53 System.out.println("hello"+'a'+1);  //字符串連接符,helloa1

03.06 賦值運算符的基本用法

基本的賦值運算符[=(賦值)]

擴展的賦值運算符[+=(左加)、-=(左減)、*=(左乘)、/=(左除)、%=(左取模)]

例:

1 int y = 10;2 y += 20;  //相當于y = y + 20;3 System.out.println("y="+y);  //y=30

03.07 賦值運算符的面試題

面試題:

short s = 1,s = s+1;

short s = 1,s += 1;

兩句代碼是否有問題?

short s = 1,s = s+1;有問題,s+1的結果為int型,不能賦值給short 型的s

short s = 1,s += 1;沒有問題,s += 1隱含了一個強制類型轉換,相當于 s = (short)(s+1);擴展的賦值運算符都有這個特點

03.08 比較運算符的基本用法及其注意事項

比較運算符:==(相等)、!=(不等)、<(小于)、>(大于)、<=(小于等于)、>=(大于等于)

注意:

1.比較運算符運算完的結果必須是true或false

2.比較運算符"=="不能寫成"="

03.09 邏輯運算符的基本用法

邏輯運算符:&(與)、|(或)、^(異或)、!(非)、&&(雙與)、||(雙或)

邏輯運算符用于連接兩個boolean類型的表達式

&(與)符號的運算規律:&運算的兩邊有一個是false結果就是false,只有兩邊都為true,結果才為true

|(或)符號的運算規律:|運算的兩邊有一個是true結果就是true,只有兩邊都為false,結果才為false

^(異或)符號的運算規律:|運算的兩邊結果相同,結果為false,兩邊結果不同,結果為true

!(非)符號的運算規律:判斷事物的另一面,例:!true=false !false=true

03.10 邏輯運算符&&和&的區別

&&(雙與)符號的運算規律:與&(與)符號的運算規律相同

||(雙或)符號的運算規律:與|(或)符號的運算規律相同

&(單與)與&&(雙與)的區別:

&(單與),不管運算的左邊的結果為true或false,都會運算右邊的表達式的結果

&&(雙與),當運算符左邊的結果為false時,不會運算右邊表達式的值,因為最終結果為false

|(單或)與||(雙或)的區別:

|(單或),不管運算的左邊的結果為true或false,都會運算右邊的表達式的結果

||(雙或),當運算符左邊的結果為true時,不會運算右邊表達式的值,因為最終結果為true

03.11 位運算符的基本用法1

位運算符:&(與運算)、|(或運算)、^(異或運算)、~(反碼)

位運算是直接對二進制進行運算

例:

03.12 位異或運算符的特點

特點:一個數異或同一個數兩次,結果還是這個數

03.13 位運算的面試題

不使用第三方變量實現兩個整數的互換

方式1

a = a ^ b;

b = a ^ b; // b = a ^ b ^ b = a;

a = a ^ b; // a = a ^ b ^ a = b;

方式2

a = a + b;

b = a - b; // b = a + b - b = a;

a = a - b; // a = a + b - a = b;

方式3

b = (a + b) - (a = b);

03.14 位運算符的基本用法2及面試題

位運算符:<<(左移)、>>(右移)、>>>(無符號右移)

<<(左移):符號位不變,低位補零,每左移一位相當于乘以2

>>(右移):低位溢出,符號位不變,并用符號位補溢出的高位,每右移一位相當于除以2

>>>(無符號右移):低位溢出,高位補零

例:

面試題:用最有效率的方式計算2乘以8的結果

2<<3

03.15 三元運算符的基本用法

格式:(條件表達式)?表達式1:表達式2;

解釋:條件表達式的結果為true,運算的結果是表達式1的值

條件表達式的結果為false,運算的結果是表達式2的值

例:

1 int x = 0,y;2 y = (x > 1)?100:200;3 System.out.println("y="+y);  //y=200

03.16 三元運算符的練習

1.獲取兩個數中的最大值

1 int x = 100;2 int y = 200;3 int max =(x > y)?x:y;4 System.out.println("max="+max); //max=200

2.獲取三個數中的最大值

1 int x = 100;2 int y = 300;3 int z = 200;4 int temp = (x > y)? x : y;5 int max =(temp > z)?temp : z;6 System.out.println("max="+max);  //max=300

03.17 鍵盤錄入的基本格式講解

鍵盤錄入數據概述:我們目前在寫程序的時候,數據值都是固定的,但是實際開發中,數據值肯定是變化的,所以,準備把數據改進為鍵盤錄入,提高程序的靈活性。

鍵盤錄入數據的步驟:

1.導包:(位置放到class定義的上面)import java.util.Scanner;

2.創建對象:Scanner sc = new Scanner(System.in);

3.接收數據:int x = sc.nextInt();

03.18 鍵盤錄入的練習1

1.鍵盤錄入兩個數據,求和

 1 import java.util.Scanner; 2 class Demo 3 { 4    public static void main(String[] args) 5    { 6       Scanner sc = new Scanner(System.in); 7       System.out.println("請輸入第1個數:"); 8       int x = sc.nextInt(); 9       System.out.println("請輸入第2個數:");10       int y = sc.nextInt();11       System.out.println(x+"+"+y+"="+(x + y));12    }13 }

運行結果:

請輸入第1個數:23請輸入第2個數:4523+45=68

2.鍵盤錄入兩個數據,求最大值

 1 import java.util.Scanner; 2 class Demo 3 { 4    public static void main(String[] args) 5    { 6       Scanner sc = new Scanner(System.in); 7       System.out.println("請輸入第1個數:"); 8       int x = sc.nextInt(); 9       System.out.println("請輸入第2個數:");10       int y = sc.nextInt();11       int max = (x > y) ? x : y;12       System.out.println("最大數是:"+max);13    }14 }

運行結果:

請輸入第1個數:45請輸入第2個數:32最大數是:45

03.19 鍵盤錄入的練習2

鍵盤錄入三個數據,求最大值

 1 import java.util.Scanner; 2 class Demo 3 { 4    public static void main(String[] args) 5    { 6       Scanner sc = new Scanner(System.in); 7       System.out.println("請輸入第1個數:"); 8       int x = sc.nextInt(); 9       System.out.println("請輸入第2個數:");10       int y = sc.nextInt();11       System.out.println("請輸入第3個數:");12       int z = sc.nextInt();13       int temp = (x > y) ? x : y;14       int max = (temp > z) ? temp : z;15       System.out.println("最大數是:"+max);16    }17 }

運行結果:

請輸入第1個數:34請輸入第2個數:6請輸入第3個數:4最大數是:34

03.20 順序結構語句

流程控制語句分類:順序結構、選擇結構、循環結構

順序結構概述:是程序中最簡單最基本的流程控制,沒有特定的語法結構,按照代碼的先后順序,依次執行,程序中大多數的代碼都是這樣執行的。

總的來說:寫在前面的先執行,寫在后面的后執行

流程圖:

03.21 選擇結構if語句格式1

選擇結構也被稱為分支結構。

選擇結構有特定的語法規則,代碼要執行具體的邏輯運算進行判斷,邏輯運算的結果有兩個,所以產生選擇,按照不同的選擇執行不同的代碼。

Java語言提供了兩種選擇結構語句

if語句和switch語句

if語句第1種格式:

if(關系表達式)

{

語句體;

}

執行流程:首先判斷關系表達式看其結果是true還是false,如果是true就執行語句體,如果是false就不執行語句體

流程圖:

例:

1 int x = 3;2 if(x > 1)3 {4    System.out.println("yes");5 }6 System.out.println("over");

03.22 選擇結構if語句注意事項

注意事項:

1.關系表達式無論簡單還是復雜,結果必須是boolean類型

2.當if控制的語句是單條語句時,if的控制范圍{ }可以省略,當if的{ }省略時,if只能控制離他最近的單條語句

當if控制的語句不是單條語句時,if的{ }不能省略。建議永遠不要省略。

3.如果在if(條件表達式)后加了;表示沒有執行語句的判斷結構,if不會控制下面的語句,無論if的條件是true還是false,下面的語句都會執行

03.23 選擇結構if語句格式2

if語句第1種格式:

if(關系表達式)

{

語句體1;

}

else

{

語句體2;

}

執行流程:首先判斷關系表達式看其結果是true還是false,如果是true就執行語句體1,如果是false就執行語句體2

流程圖:

例:

 1 int a = 3,b; 2 if(a > 1) 3 { 4    b = 100; 5 } 6 else 7 { 8    b = 200; 9 }10 System.out.println("b="+b); //b=100

03.24 選擇結構if語句格式2的練習

判斷一個數是奇數還是偶數

1 int a = 23;2 if(a % 2 == 0)3 {4    System.out.println(a+"是偶數");5 }6 else7 {8    System.out.println(a+"是奇數");9 }

運行結果:23是奇數

03.25 if語句的格式2和三元的相互轉換問題

三元運算符其實就是if else的簡寫格式,if else 是通用格式

當if else運算后有一個具體的結果時,可以簡化寫成三元運算符

當if else語句控制的語句體是一條輸出語句的時候,就不能寫成三元運算符。因為三元運算符是一個運算符,必須要求有一個結果返回。而輸出語句卻不能作為一個返回結果。

03.26 選擇結構if語句格式3

if語句第3種格式:

if(關系表達式1)

{

語句體1;

}

else if(關系表達式2)

{

語句體2;

}

......

else

{

語句體n+1;

}

執行流程

首先判斷關系表達式1看其結果是true還是false

如果是true就執行語句體1

如果是false就繼續判斷關系表達式2看其結果是true還是false

如果是true就執行語句體2

如果是false就繼續判斷關系表達式...看其結果是true還是false

...

如果沒有任何關系表達式為true,就執行語句體n+1。

流程圖:

例:

 1 import java.util.Scanner; 2 class Demo 3 { 4    public static void main(String[] args) 5    { 6       Scanner sc = new Scanner(System.in); 7       System.out.println("請輸入一個成績:"); 8       int score = sc.nextInt(); 9       if(score < 0 || score > 100)10       {11          System.out.println("數據錯誤");12       }13       else if(score >= 90)14       {15          System.out.println(score+"對應等級A");16       }17       else if(score >= 80)18       {19          System.out.println(score+"對應等級B");20       }21       else if(score >= 70)22       {23          System.out.println(score+"對應等級C");24       }25       else if(score >= 60)26       {27          System.out.println(score+"對應等級D");28       }29       else30       {31          System.out.println(score+"對應等級E");32       }33    }34 }

03.27 選擇結構if語句格式3的練習

鍵盤錄入x的值,計算出y的并輸出

x和y的關系滿足如下:

x>=3 y = 2x + 1;

-1<=x<3 y = 2x;

x<=-1 y = 2x - 1;

 1 import java.util.Scanner; 2 class Demo 3 { 4    public static void main(String[] args) 5    { 6       int y = 0; 7       Scanner sc = new Scanner(System.in); 8       System.out.println("請輸入一個數:"); 9       int x = sc.nextInt();10       if(x >= 3)11       {12          y = 2 * x + 1;13          System.out.println("y=2*"+x+"+1="+y);14       }15       else if(x >= -1 && x < 3)16       {17          y = 2 * x;18          System.out.println("y=2*"+x+"="+y);19       }20       else21       {22          y = 2 * x - 1;23          System.out.println("y=2*"+x+"-1="+y);24       }25    }26 }

03.28 選擇結構if語句格式3的練習

鍵盤錄入月份的值,輸出對應的季節

春(3,4,5)、夏(6,7,8)、秋(9,10,11)、冬(12,1,2)

 1 import java.util.Scanner; 2 class Demo 3 { 4    public static void main(String[] args) 5    { 6       Scanner sc = new Scanner(System.in); 7       System.out.println("請輸入一個月份:"); 8       int month = sc.nextInt(); 9       if(month > 12 || month < 1)10       {11          System.out.println("輸入的月份有誤");12       }13       else if(month >= 3 && month <= 5)14       {15          System.out.println(month+"月對應春季");16       }17       else if(month >= 6 && month <= 8)18       {19          System.out.println(month+"月對應夏季");20       }21       else if(month >= 9 && month <= 11)22       {23          System.out.println(month+"月對應秋季");24       }25       else26       {27          System.out.println(month+"月對應冬季");28       }29    }30 }

if語句的使用場景:

1.針對表達式是一個boolean類型的判斷

2.針對一個范圍的判斷

03.29 選擇結構if語句的嵌套使用

例:

 1 int a = 10; 2 int b = 30; 3 int c = 20; 4 int max; 5 if(a > b) 6 { 7      if(a > c) 8      { 9         max = a;10      }11      else12      {13          max = c;14      }15 }16 else17 {18    if(b > c)19    {20        max = b;21    }22    else23    {24       max = c;25    }26 }27 System.out.println("max:"+max);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹巴县| 平原县| 曲阳县| 永安市| 枣阳市| 广饶县| 丰宁| 安远县| 千阳县| 巫溪县| 赣州市| 康定县| 武乡县| 浙江省| 兴仁县| 宁城县| 麻江县| 铁岭市| 泊头市| 安义县| 株洲市| 英德市| 林西县| 莎车县| 恩施市| 建德市| 田林县| 崇阳县| 阆中市| 都安| 定边县| 松桃| 永兴县| 南京市| 新绛县| 明光市| 日照市| 平顺县| 平塘县| 芒康县| 五指山市|