黑馬程序員Java基礎班+就業班課程筆記全發布(持續更新)


正在黑馬學習,整理了一些課程知識點和比較重要的內容分享給大家,也是給自己拓寬一些視野,僅供大家交流學習,大家有什么更好的內容可以發給我 ,現有黑馬教程2000G  QQ 1481135711 

 

這是我總結的基礎班第一章課程,

 

計算機語言:

  人與計算機交流的方式
  如果人要與計算機交流,那么就要學習計算機語。計算機語言有很多種,如:C,C++,Java等。


人機交互:
  軟件的出現實現了人與計算機之間的更好的交互。
交互方式:
  圖形化界面(Graphical User Interface GUI):這種方式簡單直觀,使用者易於接受,容易上手操作。
  命令行方式(Command Line Interface CLI):需要有一個控制台,輸入特定的指令,讓計算機完成一些操作。較為麻煩,需要記錄住一些命令

Java語言概述:

1. Java語言是SUN公司(Stanford University Network,斯坦福大學網絡公司)1995年推出的一門高級編程語言。
2. Java語言是一門面向Internet的編程語言。
3. 隨着Java技術在web方面的不斷成熟,Java語言已經成為Web應用程序的首選開發語言。
4. Java語言是簡單易學,完全面向對象,安全可靠,與平台(操作系統)無關的編程語言。
  P.S:Java是允許使用者將應用程序通過Internet從遠端服務器傳輸到本地機上並執行的一種語言。

Java語言的三種技術架構:
  J2EE(Java 2 Platform Enterprise Edition) 企業版
       是為開發企業環境下的應用程序提供的一套解決方案。
      該技術體系中包含的技術如Servlet、Jsp等,主要針對於Web應用程序開發。

  J2SE(Java 2 Platform Standard Edition) 標准版
     是為開發普通桌面和商務應用程序提供的解決方案。
      該技術體系是其他兩者的基礎,可以完成一些桌面應用程序的開發,比如Java版的掃雷。

  J2ME(Java 2 Platform Micro Edition) 小型版
      是為開發電子消費產品和嵌入式設備提供的解決方案。
      該技術體系主要應用於小型電子消費類產品,如手機中的應用程序等。

  P.S
    1、Java5.0版本后,三種技術架構分別更名為JAVAEE、JAVASE、JAVAME。
    2、由於現在已經出現了Android、iOS、Windows Phone等手機操作系統,所以J2ME架構基本上已經不用了。目前,流行的手機軟件都是基於這些最新的手機操作系統進行開發。


跨平台性:
什么是跨平台性?
    通過Java語言編寫的應用程序在不同的系統平台上都可以運行。
原理是什么?
    只要在需要運行java應用程序的操作系統上,
    先安裝一個Java虛擬機(JVM Java VirtualMachine)即可。
    由JVM來負責Java程序在該系統中的運行。

<ignore_js_op> 
PS: java語言是跨平台,jvm不是跨平台的。

什么是JRE,JDK?

JRE(Java Runtime Environment   Java運行環境)
包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫等,如果想要運行一個開發好的Java程序,計算機中只需要安裝JRE即可。
Jre=jvm+類庫。
JDK(Java Development Kit    Java開發工具包)
JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。
其中的開發工具:編譯工具(javac.exe)  打包工具(jar.exe)等
Jdk=開發工具+jre
PS:使用JDK開發完成的java程序,交給JRE去運行

 

為什么JDK中包含一個JRE呢?
1,開發完的程序,需要運行一下看看效果。
2,JDK中的開發工具其實都是java語言編寫的應用程序,為了方便使用才打包成exe文件,
如果沒有JRE,那么這些工具是運行不了的。


JVM、JRE和JDK的區別:
JVM(Java Virtual Machine):java虛擬機,用於保證java的跨平台的特性。
JRE(Java Runtime Environment):java的運行環境,包括jvm+java的核心類庫。        
JDK(Java Development Kit):java的開發工具,包括jre+開發工具

JDK的下載與安裝:
JDK(Java DevelopmentKit  Java開發工具包) 
官方下載網址:www.oracle.com

                       1.點擊Downloads下的Java for Developers。
                       2. 點擊JDK下的DOWNLOAD按鈕。
                       3.點擊Accept License Agreement 接受JDK的許可證協議,然后再點擊jdk-8u45-windows-i586.exe(32位)/jdk-8u45-windows-x64.exe(64位)進行下載。
                        PS: 查看系統是多少位,用鼠標右鍵點擊我的電腦屬性,查看系統類型。
傻瓜式安裝,下一步即可。
建議:安裝路徑不要有中文或者特殊符號如空格等。

配置環境變量path:
配置:
我的電腦--屬性--高級--環境變量
1.新創建一個環境變量名為JAVA_HOME ,
變量值為java工具所在目錄,
2.在path中通過%%動態的獲取JAVA_HOME的值即可。
   %JAVA_HOME%:動態獲取名稱為JAVA_HOME環境變量的值。

例如:
        
        JAVA_HOME=F:\jdk1.6.0_01(java工具(JDK)所在目錄
        path=%JAVA_HOME%\bin;%path%
        %path%:動態獲取path環境變量的值。
     
    <ignore_js_op> 
    <ignore_js_op> 

檢測:
打開DOS命令行(1.徽標鍵 +R ,輸入CMD。2.點擊開始-->所有程序-->附件-->命令提示符),任意目錄下敲入javac
<ignore_js_op> 
錯誤原理:當前執行的程序在當前目錄下如果不存在,windows系統會在系統中已有的一個名為path的環境變量指定的目錄中查找。如果還沒有找到,就出現以上的錯誤提示。
如果進入到 jdk安裝路徑\bin目錄下,執行javac就可以看到javac參數提示信息,這說明我們的JAVA_HONE的環境變量沒有配置成功。
<ignore_js_op> 


配置環境變量class_Path:
由於可能頻繁執行多個class文件,並且多個class文件可能存儲在不同的目錄下,那么每次都在命令提示符窗口中切換目錄會相當的麻煩。
classpath環境變量的作用類似於path環境變量,但是它的作用在於告訴JVM去哪里找到class文件。
環境變量path和classpath的作用是什么?
(1)path是配置Windows可執行文件的搜索路徑,即擴展名為.exe的程序文件所在的目錄, 用於指定DOS窗口命令的路徑。
(2)Classpath是配置class文件所在的目錄,用於指定類搜索路徑,JVM就是通過它來尋找該類的class類文件的。 

 

第二章

 

 

關鍵字

概述:被Java語言賦予特定含義的單詞
特點:組成關鍵字的字母全部小寫
注意事項:
goto和const作為保留字存在,目前並不使用(保留字:JDK的新版本中可能提升為關鍵字)
類似Notepad++這樣的高級記事本,針對關鍵字有特殊的顏色標記,非常直觀

<ignore_js_op>

 

<ignore_js_op>




標識符

 

概述:給類,接口,方法,變量等起名字時使用的字符序列

組成規則:英文大小寫字母、數字字符、$和_命名規范:
包名:多單詞組成時所有字母都小寫,
類名接口名:多單詞組成時,所有單詞的首字母大寫
變量名和函數名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫
常量名:所有字母都大寫。多單詞時每個單詞用下划線連接
注意事項 :不能以數字開頭、不能是Java中的關鍵字、區分大小寫要見名知意,駝峰命名

常量
概述:在程序執行的過程中其值不可以發生改變
常量分類:
             1、字面值常量
             2、自定義常量(面向對象部分講)

     字面值常量的分類

           1. 整數常量:所有整數。

 

            2. 小數常量:所有小數。

 

            3. 布爾(boolean)型常量:只有兩個數值,true、false。

 

            4. 字符常量:將一個數字字母或者符號用單引號( ' ' )標識,如:'a'。

 

            5. 字符串常量:將一個或者多個字符用雙引號("")標識,如:"hello world"、"a"、""(空字符串)。

 

            6. null常量:只有一個數值就是:null。


Java針對整數常量提供了4種表現形式:二進制、八進制、十進制 、十六進制

 

進制:就是進位制,是人們規定的一種進位方法。對於任何一種進制--X進制,就表示某一位置上的數運算時是逢X進一位。二進制就是逢二進一,八進制是逢八進一,十進制是逢十進一,十六進制是逢十六進一、

二進制的由來:任何數據在計算機中都是以二進制的形式存在的。二進制早期由電信號開關演變而來。

一個整數在內存中一樣也是二進制的,但是使用一大串的1或者0組成的數值進行使用很麻煩。

 

八進制的由來:所以就想把一大串縮短點,將二進制中的三位用一位表示。

 

這三位可以取到的最大值就是7.超過7就進位了,這就是八進制。

 

十六進制的由來:但是對於過長的二進制變成八進制還是較長,所以出現的用4個二進制位表示一位的情況,四個二進制位最大是15,這就是十六進制。


不同進制的數據組成:
二進制 由0,1組成。以0b開頭  例:0101 
八進制  由0,1,…7組成。以0開頭  例:032
十進制 由0,1,…9組成。整數默認是十進制的  例:12
十六進制   由0,1,…9,a,b,c,d,e,f(大小寫均可)。以0x開頭 例:0x42b6
規律:進制越大,表現形式越短。


轉換(可以通過計算機的程序員計算器)
8421碼(8421碼是BCD代碼中最常用的一種。
100轉成二進制   0110 0100
101101轉成十進制  45
二進制和八進制,十六進制進行轉換是以十進制作為橋梁
二進制到八進制是3位二進制組成一位八進制
二進制到十六進制是4位二進制組成一位十六進制

在計算機內,有符號數有3種表示法:原碼反碼補碼。所有數據的運算都是采用補碼進行的。
原碼:就是二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其余位表示數值的大小。
反碼:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
補碼:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

變量
概述:在程序執行的過程中,在某個范圍內其值可以發生改變的量
格式:數據類型 變量名 = 變量值;
好處: 可以用來不斷的存放同一類型的常量,並重復使用 
數據類型
概述:Java語言是強類型語言,對於每一種數據都定義了明確的具體數據類型,在內存中分配了不同大小的內存空間
Java中數據類型的分類
分類:基本數據類型(4類8種) 和引用數據類型

<ignore_js_op> 
整數型
byte 占一個字節  -128到127
short 占兩個字  -2^15~2^15-1
int 占四個字節 -2^31~2^31-1
long 占八個字節 -2^63~2^63-1
浮點型
float 占四個個字節 -3.403E38~3.403E38
double 占八個字節-1.798E308~1.798E308
字符型
char 占兩個字節 0~65535
布爾型
boolean   
boolean理論上是占八分之一個字節,因為一個開關就可以決定是true和false了,但是java中boolean類型沒有明確指定他的大小  

注意事項
作用域 :變量定義在哪一級大括號中,哪個大括號的范圍就是這個變量的作用域。相同的作用域中不能定義兩個同名變量。
初始化值:沒有初始化值不能直接使用
在一行上可以定義多個變量,但是不建議只定義一個

數據轉換
默認轉換
byte,short,char—int—long—float—double
byte,short,char相互之間補轉換,他們參與運算首先轉換為int類型
強制轉換
目標類型 變量名=(目標類型)(被轉換的數據);
boolean類型不能轉換為其他的數據類型


運算符
<ignore_js_op> 
加法(+):      1、加法   System.out.println("a+b="+(a+b))  ,此處是求(a+b)的值
     2、正數    int b = +3;  此處表示b是正數3
     3、字符串連接符   System.out.println("a=“+a+"b="+b))   ‘+’為字符串連接符號,不參與運算,顯示的為 a=a,b=b 
除法(/):1、整數相除,只能得到整數2、要想得到小數,可以*1.0
/和%的區別:
除法和平時用法一樣,取模就是取余數,負數對正數取模結果為負數。正數對負數取模結果為正數。舉個栗子:
-2%5= -2  -2是被模數,5是模數,負數的取模運算結果是不是負數看左邊。
++和--的應用:
++運算單獨存在時放左放右是沒有區別的,
參與其他運算時 b = ++a相等於 b = a+1 ,
b = a++ b應為a的初始值,a為a+1
賦值運算符
符號:
= , +=, -=, *=, /=, %=
=為基本的賦值運算符,其他的為擴展的賦值運算符
=賦值號
+=加賦值
把左邊和右邊的結果賦值給左邊。注意:左邊不能是常量

關系運算符
<ignore_js_op> 
比較運算符的結果都是boolean型,也就是要么是true,要么是false。
比較運算符“==”不能誤寫成“=” 。

 

第三章

 

邏輯運算符

<ignore_js_op style="word-wrap: break-word;">
基本用法

     邏輯運算符一般用於連接boolean類型的表達式或者值。
     表達式:就是用運算符把常量或者變量連接起來的符合java語法的式子。
          算術表達式:a + b
          比較表達式:a == b(條件表達式)
特點:偶數個不改變本身。
舉個栗子:
       用來連接boolean模式的表達式 
        &(與):  3<x<5應寫成  x>3 & x>5
        兩邊都是true,結果是true,否則都是false
        true & true = true ;
        true & false = false;
        false & true = false;
        false & false = false ;
       |(或):  x<3 | x>5
        兩邊都是false,結果是false,否則都是true
        true | true = true ;
        true |  false = true;
        false |  true = true;
        false |  false = false ;
        ^(異或): 
        兩邊相同為false,兩邊不同為true。
        true ^ true = false ;
        true ^  false = true;
        false ^  true = true;
        false ^  false = false ;
        !(非):
        true = false;
“&”和“&&”的區別:
單&時,左邊無論真假,右邊都進行運算;
雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那么右邊不參與運算。
“|”和“||”的區別同理,雙或時,左邊為真,右邊不參與運算。
異或( ^ )與或( |)的不同之處是:當左右都為true時,結果為false。

位運算符
<ignore_js_op style="word-wrap: break-word; font-family: 微軟雅黑; line-height: 30.8px;"> 

<<:就是將左邊的操作數在內存中的二進制數據左移右邊操作數指定的位數,右邊被移空的部分補0。相當於乘與2的倍數
>>:右移稍微復雜一點,如果最高位是0,左邊被移空的位就填入0;如果最高位是1,左邊被移空的位就填入1。相當於除以2的倍數
>>>:無論最高位是1還是0,左邊被移空的高位都填入0。
看結果:總結相當於乘以或者除以2的多少次冪。
1為真0為假。
&:有0則0,可以用來取二進制中的有效位1。
|:有1位為1,結果為1
^:相同則0,不同則1 ,a^b^b  a異或b兩次還是a。
~:按位取反  6取反 ~6+1=-6


三元運算符
格式:(關系表達式)?表達式1:表達式2   如:z=(x>y)?x:y 
如果條件為true,運算后的結果是表達式1
如果條件為false,運算后的結果是表達式2
和if else 的簡寫差不多
一定要返回一個變量或者值不能是其他語句。

鍵盤錄入的基本格式
1.導入包: import  java.util.Scanner;
2.在main函數中實例化對象: Scanner sc = new Scanner(System.in);
        接受用戶輸入:    
        2.1) 接收整數:
                int num = sc.nexInt();
        2.2)    接收字符串:
                String str = sc.next();
        2.3)接收浮點值:  
                 double val = sc.nextDouble();
     在Scanner類中,有一些:hasNextXxxx()方法,這些方法可以先期判斷是否能夠獲取一個Xxxx的值,如果可以,此方法返回true,否則返回false  

流程控制語句

流程控制語句分類 
順序結構
選擇結構
循環結構
選擇結構的分類
if語句
switch語句
if語句有幾種格式
格式1

  1.          if(關系表達式) ;{
  2.                  語句體
  3.          }
復制代碼


  執行流程
      先計算比較表達式的值,看其返回值是true還是false。
      如果是true,就執行語句體;
      如果是false,就不執行語句體;

  選擇結構if語句注意事項
  a:比較表達式無論簡單還是復雜,結果必須是boolean類型
  b:if語句控制的語句體如果是一條語句,大括號可以省略;如果是多條語句,就不能省略。建議永遠不要省略。
  c:一般來說:有左大括號就沒有分號,有分號就沒有左大括號
格式2

  1.    if(關系表達式){                 
  2.              語句體
  3.          }else{
  4.                  語句體
  5.          };
復制代碼


  執行流程:
       
首先計算比較表達式的值,看其返回值是true還是false
       
如果是true,就執行語句體1
       
如果是false,就執行語句體2
   注意事項:else后面是沒有比較表達式的,只有if后面有。
  if語句的格式2和三元的相互轉換問題:
     當if語句控制的語句體是一條輸出語句的時候,就不成立。因為三元運算符是一個運算符,必須要求有一個結果返回。而輸出語句卻不能作為一個返回結果,在其他的時候三元運算符的操作都可以使用if語句改進
  格式3

  1.           if(關系表達式){               
  2.                  語句體
  3.          }else if(關系表達式) {
  4.                  語句體
  5.          }
  6.           ...
  7.          else{
  8.                  語句體
  9.          };
復制代碼


執行流程:
       首先計算比較表達式1看其返回值是true還是false,
       如果是true,就執行語句體1,if語句結束。
       如果是false,接着計算比較表達式2看其返回值是true還是false,
       如果是true,就執行語句體2,if語句結束。
       如果是false,接着計算比較表達式3看其返回值是true還是false,
       如果都是false,就執行語句體n+1。
  注意事項:最后一個else可以省略,但是建議不要省略,可以對范圍外的錯誤值提示


選擇結構
   switch語句格式
         

  1.         switch(表達式) {
  2.                     case 值1:
  3.                           語句體1;
  4.                          break;
  5.                       case值2:
  6.                           語句體2;
  7.                           break;
  8.                           …
  9.                     default:  
  10.                         語句體n+1;
  11.                        break;
  12.           }
復制代碼


格式解釋
1.switch表示這是switch語句
        表達式的取值:byte,short,int,char
        JDK5以后可以是枚舉
        JDK7以后可以是String
2.case后面跟的是要和表達式進行比較的值3.語句體部分可以是一條或多條語句
4.break表示中斷,結束的意思,可以結束switch語句
5.default語句表示所有情況都不匹配的時候,就執行該處的內容,和if語句的else相似。
執行流程
首先計算出表達式的值
其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
最后,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然后程序結束掉。 
注意事項
1."表達式"可以產生的值:byte,short,int,char,枚舉(JDK5以后),String(JDK7以后)
2.case語句后跟"常量表達式",不能是"變量";而且不能出現相同的常量值;
3.break;語句"不是必須的"。如果不寫,如果一旦case相應的值成功,但內部沒有break語句,那么將會無條件(不再進行case匹配)的繼續向下執行其它case中的語句,直到遇到break;語句或者到達switch語句結束。
4.多個case之間,沒有順序關系;
5.default語句"不是必須的"。可以不寫,它就相當於多重if語句中最后的else。
6.default語句和case語句"沒有順序關系"

選擇結構if語句和switch語句的區別
switch建議判斷固定值的時候用
if建議判斷區間或范圍的時候用

現有黑馬教程2000G,歡迎互換項目資源共同進步!  QQ 1481135711 

邏輯運算符

<ignore_js_op style="word-wrap: break-word;">
基本用法

     邏輯運算符一般用於連接boolean類型的表達式或者值。
     表達式:就是用運算符把常量或者變量連接起來的符合java語法的式子。
          算術表達式:a + b
          比較表達式:a == b(條件表達式)
特點:偶數個不改變本身。
舉個栗子:
       用來連接boolean模式的表達式 
        &(與):  3<x<5應寫成  x>3 & x>5
        兩邊都是true,結果是true,否則都是false
        true & true = true ;
        true & false = false;
        false & true = false;
        false & false = false ;
       |(或):  x<3 | x>5
        兩邊都是false,結果是false,否則都是true
        true | true = true ;
        true |  false = true;
        false |  true = true;
        false |  false = false ;
        ^(異或): 
        兩邊相同為false,兩邊不同為true。
        true ^ true = false ;
        true ^  false = true;
        false ^  true = true;
        false ^  false = false ;
        !(非):
        true = false;
“&”和“&&”的區別:
單&時,左邊無論真假,右邊都進行運算;
雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那么右邊不參與運算。
“|”和“||”的區別同理,雙或時,左邊為真,右邊不參與運算。
異或( ^ )與或( |)的不同之處是:當左右都為true時,結果為false。

位運算符
<ignore_js_op style="word-wrap: break-word; font-family: 微軟雅黑; line-height: 30.8px;"> 

<<:就是將左邊的操作數在內存中的二進制數據左移右邊操作數指定的位數,右邊被移空的部分補0。相當於乘與2的倍數
>>:右移稍微復雜一點,如果最高位是0,左邊被移空的位就填入0;如果最高位是1,左邊被移空的位就填入1。相當於除以2的倍數
>>>:無論最高位是1還是0,左邊被移空的高位都填入0。
看結果:總結相當於乘以或者除以2的多少次冪。
1為真0為假。
&:有0則0,可以用來取二進制中的有效位1。
|:有1位為1,結果為1
^:相同則0,不同則1 ,a^b^b  a異或b兩次還是a。
~:按位取反  6取反 ~6+1=-6


三元運算符
格式:(關系表達式)?表達式1:表達式2   如:z=(x>y)?x:y 
如果條件為true,運算后的結果是表達式1
如果條件為false,運算后的結果是表達式2
和if else 的簡寫差不多
一定要返回一個變量或者值不能是其他語句。

鍵盤錄入的基本格式
1.導入包: import  java.util.Scanner;
2.在main函數中實例化對象: Scanner sc = new Scanner(System.in);
        接受用戶輸入:    
        2.1) 接收整數:
                int num = sc.nexInt();
        2.2)    接收字符串:
                String str = sc.next();
        2.3)接收浮點值:  
                 double val = sc.nextDouble();
     在Scanner類中,有一些:hasNextXxxx()方法,這些方法可以先期判斷是否能夠獲取一個Xxxx的值,如果可以,此方法返回true,否則返回false  

流程控制語句

流程控制語句分類 
順序結構
選擇結構
循環結構
選擇結構的分類
if語句
switch語句
if語句有幾種格式
格式1

  1.          if(關系表達式) ;{
  2.                  語句體
  3.          }
復制代碼


  執行流程
      先計算比較表達式的值,看其返回值是true還是false。
      如果是true,就執行語句體;
      如果是false,就不執行語句體;

  選擇結構if語句注意事項
  a:比較表達式無論簡單還是復雜,結果必須是boolean類型
  b:if語句控制的語句體如果是一條語句,大括號可以省略;如果是多條語句,就不能省略。建議永遠不要省略。
  c:一般來說:有左大括號就沒有分號,有分號就沒有左大括號
格式2

  1.    if(關系表達式){                 
  2.              語句體
  3.          }else{
  4.                  語句體
  5.          };
復制代碼


  執行流程:
       
首先計算比較表達式的值,看其返回值是true還是false
       
如果是true,就執行語句體1
       
如果是false,就執行語句體2
   注意事項:else后面是沒有比較表達式的,只有if后面有。
  if語句的格式2和三元的相互轉換問題:
     當if語句控制的語句體是一條輸出語句的時候,就不成立。因為三元運算符是一個運算符,必須要求有一個結果返回。而輸出語句卻不能作為一個返回結果,在其他的時候三元運算符的操作都可以使用if語句改進
  格式3

  1.           if(關系表達式){               
  2.                  語句體
  3.          }else if(關系表達式) {
  4.                  語句體
  5.          }
  6.           ...
  7.          else{
  8.                  語句體
  9.          };
復制代碼


執行流程:
       首先計算比較表達式1看其返回值是true還是false,
       如果是true,就執行語句體1,if語句結束。
       如果是false,接着計算比較表達式2看其返回值是true還是false,
       如果是true,就執行語句體2,if語句結束。
       如果是false,接着計算比較表達式3看其返回值是true還是false,
       如果都是false,就執行語句體n+1。
  注意事項:最后一個else可以省略,但是建議不要省略,可以對范圍外的錯誤值提示


選擇結構
   switch語句格式
         

  1.         switch(表達式) {
  2.                     case 值1:
  3.                           語句體1;
  4.                          break;
  5.                       case值2:
  6.                           語句體2;
  7.                           break;
  8.                           …
  9.                     default:  
  10.                         語句體n+1;
  11.                        break;
  12.           }
復制代碼


格式解釋
1.switch表示這是switch語句
        表達式的取值:byte,short,int,char
        JDK5以后可以是枚舉
        JDK7以后可以是String
2.case后面跟的是要和表達式進行比較的值3.語句體部分可以是一條或多條語句
4.break表示中斷,結束的意思,可以結束switch語句
5.default語句表示所有情況都不匹配的時候,就執行該處的內容,和if語句的else相似。
執行流程
首先計算出表達式的值
其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
最后,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然后程序結束掉。 
注意事項
1."表達式"可以產生的值:byte,short,int,char,枚舉(JDK5以后),String(JDK7以后)
2.case語句后跟"常量表達式",不能是"變量";而且不能出現相同的常量值;
3.break;語句"不是必須的"。如果不寫,如果一旦case相應的值成功,但內部沒有break語句,那么將會無條件(不再進行case匹配)的繼續向下執行其它case中的語句,直到遇到break;語句或者到達switch語句結束。
4.多個case之間,沒有順序關系;
5.default語句"不是必須的"。可以不寫,它就相當於多重if語句中最后的else。
6.default語句和case語句"沒有順序關系"

選擇結構if語句和switch語句的區別
switch建議判斷固定值的時候用
if建議判斷區間或范圍的時候用

 

配套資料可以找我要 1481135711


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM