流程式控制制和數組

來源:互聯網
上載者:User

標籤:自動   定義   選擇   而不是   固定   case   png   迴圈條件   statement   

  不管是哪種程式設計語言,都有兩種流程式控制制結構:分支結構和迴圈結構。分支結構用於實現根據條件來選擇性的執行某段代碼,迴圈結構則用於實現根據迴圈條件重複執行

某段代碼。Java也提供了這兩種流程式控制制結構,Java提供了if和switch兩種分支語句;提供了while、do while和for三種迴圈語句。還有一種用於遍曆的迴圈,使用foreach迴圈可以遍曆集合、數組的元素。

一、分支結構1.1if條件陳述式  

  if語句使用布林運算式或布爾值作為分支條件來進行分支控制。

使用if...else語句時,一定要處理包含範圍更小的情況。

1.2switch分支語句

  switch語句後面的控製表達式的資料類型只能是byte、short、int、long四種整數類型,在Java7之後能夠支援string和枚舉類型;使用switch分支語句時需要注意到case後代碼塊的break。

二、迴圈結構

  迴圈語句在滿足迴圈條件的情況下,反覆執行某一段代碼,這段被重複執行的代碼被稱為迴圈體。當反覆執行這個迴圈體,需要在合適的時候把迴圈條件改為假,從而把迴圈結束,否則

迴圈將一直執行下去,形成死迴圈。

2.1while迴圈語句

while(test_expression){

  statement(iteration_statement)

}

2.2do while迴圈語句

do{

  statement;(iteration_statement)

}while(test_expression)

2.3for迴圈

for([init_statement];[test_expression];[iteration_statement]){

  statement;

}

2.4控制迴圈結構

使用break結束迴圈:某些時候需要在某種條件出現時強行終止迴圈,而不是等到迴圈條件為false的時候才終止迴圈。break用於結束一個迴圈,跳出迴圈體。不管是哪種迴圈,一旦在迴圈體中

遇到了break,系統將完全結束該迴圈,開始執行迴圈後的代碼。

使用continue忽略本次迴圈剩下語句:continue是忽略本次迴圈剩下語句,接著開始下一次迴圈,並不會終止迴圈;而break是終止迴圈本身。

使用return結束方法:並不是專門用於結束迴圈的,return的功能是結束一個方法。

三、數組

   數組時程式設計語言中常見的一種資料結構,可以用於儲存資料,每個數組元素放一個資料,通常可以通過數組元素的索引去訪問數組元素,也可以為數組元素賦值和取出數組元素的值。

  3.1數組特性

  數組也是一種類型:Java數組的數組元素具有相同的資料類型,一個數組裡只能儲存一種資料類型的資料,不能儲存多種資料類型的資料。一旦數組的初始化完成,數組在記憶體中所佔的空間將被

固定下來,因此數組的長度將不可改變。即使把某個數組元素的資料清空,但它所佔的空間依然被保留,依然屬於該數組,數組的長度依然不變。

  定義一個數組:type [ ] arrayName;數組是一種參考型別的變數,所以使用它定義一個變數時,僅僅表示定義了一個引用變數(也就是定義了一個指標,但是沒有任何意義)。這個引用變數還沒有指向

任何有效記憶體,因此定義數組時不能指定數組的長度。只有對數組進行初始化後才可以使用。

  數組的初始化:Java語言中數組必須先初始化,才可以使用。初始化就是為數組的數組元素分配記憶體空間,並且為每個數組元素賦初始值。

數組的初始化有兩種方式:

  1. 靜態初始化:初始化時由程式員顯式的為每個數組元素賦予初始值,由系統決定數組長度。arrayname=new type[]{element1,element2,element3};type[] arrayname={element1,element2};

        2.動態初始化:初始化程式員只指定數組長度,由系統為每個數組元素分配初始值。arrayname=new type[length];

3.2foreach迴圈

  foreach迴圈是用來迴圈遍曆集合和數組的,十分方便。不用擷取數組和集合長度,無鬚根據索引來訪問數組元素和集合元素,foreach迴圈自動遍曆數組和集合的每個元素。

文法格式如下:for(type variableName: array|collection){

  自動迭代訪問每個數組元素...

}

三、深入瞭解數組

   數組是一種引用資料類型,數組引用變數只是一個引用,數組元素和陣列變數在記憶體裡是分開存放的。下面將介紹數組在記憶體中的運行機制。

3.1記憶體中的數組

  數組引用變數只是一個引用,這個引用變數可以指向任何有效記憶體,只有當引用變數指向有效記憶體時,才可以通過陣列變數訪問數組元素。

  實際的數組對象被儲存在堆記憶體中·;如果引用該數組對象的數組引用變數時一個局部變數,那麼它儲存在棧記憶體中。數組在記憶體中的儲存,

  要訪問堆記憶體中的數組元素時,則程式中只能通過p[index]的形式。也就是說,數組引用變數時訪問堆記憶體中數組元素的根本方式。

  當一個方法執行時,每個方法都會建立自己的記憶體棧,在這個方法中聲明的變數都會放到這個棧記憶體中,隨著方法執行的結束,這個方法的記憶體棧也就會自然被銷毀。所有方法定義的

局部變數都是放到棧記憶體中;在程式中建立一個對象後,這個對象被儲存到運行時資料區中,這個地區就叫做堆記憶體。只有當堆記憶體沒有一個引用變數去指向它時,系統的記憶體回收機制或

將這個記憶體區回收。

  定義並初始化一個數組後,在記憶體中分配了兩個空間,一個用於存放數組的引用變數在棧記憶體中,一個用於存放數組的本身在堆記憶體中。引用變數在棧記憶體中就像是一個地址,通過訪問

這個地址就可以訪問到地址上的東西堆記憶體,訪問到其中的資料。沒有這個引用變數的地址時,是無法訪問到堆記憶體的,只有通過數組引用變數才能訪問到。

   

 

流程式控制制和數組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.