Java心得---運算式、流程式控制制__Java

來源:互聯網
上載者:User

      今天學習了流程式控制制,包含各種迴圈,下面是一些心得和體會:

1.將來我們會學習和使用圖形化使用者介面的java應用程式,圖形化使用者介面的作業系統或應用程式就是對底層操作指令進行了整體的“封裝”,例如:用按一下滑鼠功能表項目,最終還是要轉換為對底層指令的調用,只要有封裝,就會有效能上的消弱和限制,而使用控制台能夠在相對的底層實現操控,效率會更高。
2.foreach迴圈是JDK5.0提供的迴圈語句,能以更簡單的方式來曆編集合數組的元素。
3.java語言沒有提供和goto語句來控製程序的跳轉,這種做法提高率程式流程的控制的可讀性,但也降低了程式流程式控制制的靈活性,為了彌補這種不足,java提供了continue和break來控制迴圈結構。除此之外,return可以結束這個方法,當然也就結束一次迴圈。break是退出迴圈(例如:如果有內外兩層,則退出內層迴圈;想要退出外層需要後面跟一個標籤,這個標籤用於標識一個外層迴圈,(java標籤就是一個緊跟著英文冒號(:)的標識符,與其他語言不同的是,java中的只有放在迴圈語句之前才有作用)要注意:break後的標籤必須是一個有效標籤,即這個標籤break語句所在的迴圈之前定義,或者在其所在的迴圈的外層迴圈之前定義),continue是退出本層迴圈;(代標號的continue語句可從多重迴圈的內層迴圈跳到外層迴圈,執行標號所標識的迴圈的下一輪);return 並不是專門用於跳出迴圈的,而是結束一個方法,一旦在迴圈體內執行一個return語句,該方法將會結束,迴圈自然也隨之結束。(即從哪開始調用的回到哪;與break相似,continue後也可以跟一個標籤,用於直接結束標籤所標識迴圈的當次迴圈,重新開始下一次迴圈);即continue只是終止本次迴圈,接著開始下一次迴圈,而break則是完全終止迴圈,可以理解為continue的作用是略過當次迴圈中剩下的語句,重新開始新的迴圈。
4.放在if後的小括弧裡的只能是一個邏輯運算式,即這個運算式的傳回值只能是ture或false;if、else if、以及else後花括弧中的多行代碼被稱為代碼塊;如果代碼塊中只有一行語句時,可以省略花括弧,最好不省略,因為這樣有更好的可讀性,而且會減少錯誤的發生。
5.else的含義是“否則”,else本身就是一個條件,他的隱含條件是:對前麵條件取反;在使用if。。。else語句有一個基本規則:總是優先把範圍小的條件放在前面處理。
6.和if語句不同的是:(1).switch語句中的各case標籤後代碼塊的開始點和結束點非常清晰,因此可以完全省略case後代碼塊的花括弧。與if語句中的else類似,switch中的default看似沒有條件其實有條件,即expression運算式的值不能與前面任何一個case的值相等。(2).switch語句控製表達式的類型只能是byte、short、int、char;不能是字串,這與C#有所不同,控製表達式的資料類型只能是整型或字元型,不能是boolean型。
7.與while不同的是do while迴圈的迴圈條件後必須有一個分號(;)而while後必須沒有,這個分號表明迴圈結束;do while迴圈的迴圈體至少執行一次。
8.對於for迴圈而言,迴圈條件總比迴圈體要多執行一次,因為最後執行迴圈條件返回false,將不再執行迴圈體。for迴圈的迴圈迭代語句並沒有與迴圈體放在一起,因此即使在執行迴圈體時遇到continue語句結束本次迴圈,迴圈迭代語句一樣會得到執行。(迴圈體:被反覆執行的代碼,需要在適當的時候把迴圈體條件改為假,結束迴圈,否則迴圈體一直執行下去,會形成死迴圈;迴圈條件是:一個boolean運算式,用於決定是否執行迴圈體;跌打語句:這部分在一次迴圈體執行結束後,對迴圈條件求值之前執行,通常用於控制迴圈條件中的變數,使得迴圈在合適的時候結束。(比如:i++;j++))
9.由於while、do while迴圈的迴圈迭代語句緊跟著迴圈體,因此如果迴圈體不能完全執行,如使用continue來結束本次迴圈,則迴圈迭代語句不會被執行,但for迴圈的迴圈迭代語句並沒有與迴圈體放在一起,因此不管是否使用continue來結束本次迴圈,迴圈迭代語句一樣會獲得執行。
10.for迴圈圓括弧中的兩個分號是必須的,初始化語句、迴圈條件、迭代語句部分都是可以省略的,如果省略了迴圈條件,則這個迴圈條件預設是ture,將會產生一個死迴圈。(死迴圈:while(1)=while(ture)=for(;;))使用for迴圈時還可以把初始化條件定義在迴圈體之外,把迴圈迭代語句放在迴圈體內,這種做法非常類似與while。如果使用continue來結束本次迴圈,將會導致迴圈迭代語句得不到執行。把for迴圈的初始化語句放在迴圈之前定義還有一個作用:可以擴大初始化語句中所定義的變數的範圍。(範圍擴大的後果:如果該方法還有另一個迴圈也需要定義迴圈變數,則不能再使用i作為迴圈變數)(在for迴圈中定義的變數,其範圍僅在該迴圈內有效,for迴圈終止以後這些變數不能再被訪問)相比之下這種方法更常見:
  int temp=0;
  for(int i=0;i<10;i++){System.out.println(i+"\n") temp=i;}
  System.out.println("迴圈結束")
使用一個變數templ來儲存迴圈變數i的值,使得程式更加清晰,變數i和templ的責任更加清晰。
11.假設外層迴圈為n次,內層為m次,那麼內層迴圈的迴圈體實際上需要執行n*m次。(外層迴圈一般管行,內層管列。)
12.源檔案開頭的import語句的作用是匯入java.util包中定義的Scanner類。Scanner.in代表鍵盤輸入,是一個由系統提供的關聯到控制台輸入的java對象,Scanner.out是輸出。介紹其中幾個常用的方法:
  java.util.Scanner類的功能並不僅限於控制台輸入資料的讀取,它的對象還可以關聯到字串、檔案或其他的資料來源。
  (1).構造方法 public Scanner(InputStream source) 例如,Scanner sc=new Scanner(System.in);
  (2).public Sting next() 讀取下一個單詞,以空格符或分行符號作為分隔單詞的標記。例如,String name=sc.next();
  (3).public int nextInt() 讀取一個整數,如果輸入的下一個單詞不能解析為有效整數(例如包含漢字等非數值字元),則出錯。
  (4).public double nextDouble() 讀取一個雙精確度浮點數,如果輸入的下一個單詞不能解析為有效浮點數,則出錯。
  (5).public Boolean nextBoolean() 讀取一個布爾值,如果輸入的下一個單詞不能解析為有效boolean值(true或false),則出錯

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.