機智W_en——Java從零開始(3)(Java流程控制)

轉載請註明本文出自機智W_en的博客(https://blog.csdn.net/kevin___dd),謝謝支持!

前言

這篇主要介紹Java程序員必須掌握的流程控制語句,只有掌握這些流程控制語句,編寫java程序才能得心應手。

Java流程控制

語句與複合語句

  語句可以是以分號“;”結尾的簡單語句,也可以是用一對花括號“{}”括起來的複合語句

  複合語句相當於一條“長語句”

 

 

順序結構:根據語句順序執行

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

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

 

  按照語句順序執行

 

分支結構:根據條件選擇執行

也稱選擇結構

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

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

 if語句

 switch語句

if語句

l  if語句第一種格式:

  if(關係表達式) {

                        語句體

         }

l  執行流程

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

  如果是true就執行語句體

  如果是false就不執行語句體

 

l  if語句第二種格式:

  if(關係表達式) {

                        語句體1;

         }else{

                        語句體2;

         }

l  執行流程

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

  如果是true就執行語句體1

  如果是false就執行語句體2

 

l  if語句第三種格式:

  if(關係表達式1) {

                        語句體1;

         }else  if (關係表達式2) {

                        語句體2;

         }

    …

         else{

                        語句體n+1;

         }

Switch語句

l  switch語句格式:

  switch(表達式) {

               case 值1:

                            語句體1;

                            break;

                       case 值2:

                            語句體2;

                            break;

                       …

                       default:

                            語句體n+1;

                            break;

    }

l  格式解釋

  switch表示這是switch語句

 表達式的取值:byte,short,int,char

 JDK5以後可以是枚舉

 JDK7以後可以是String

  case後面跟的是要和表達式進行比較的值

  語句體部分可以是一條或多條語句

  break表示中斷,結束的意思,可以結束switch語句

  default語句表示所有情況都不匹配的時候,就執行該處的內容,和if語句的else相似。

 

l  執行流程

  首先計算出表達式的值

  其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。

  最後,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然後程序結束掉。

例:鍵盤輸入一個整數,輸出是奇數或偶數

import java.util.Scanner;

public class Test {

   public static void main(String[] args) {

       Scanner scan = new Scanner(System.in);

       System.out.print("x=");

       int x = scan.nextInt();

       if (x % 2 == 0) {

           System.out.println(x+"是偶數");

       } else {                                                     //x%2爲1

           System.out.println(x+"是奇數");

       }

    }

}

 

循環結構:根據條件重複執行

l  循環語句可以在滿足循環條件的情況下,反覆執行某一段代碼,這段被重複執行的代碼被稱爲循環體語句,當反覆執行這個循環體時,需要在合適的時候把循環判斷條件修改爲false,從而結束循環,否則循環將一直執行下去,形成死循環。

 

l  循環語句的組成

  初始化語句:

 一條或者多條語句,這些語句完成一些初始化操作。

  判斷條件語句:

 這是一個boolean 表達式,這個表達式能決定是否執行循環體。

  循環體語句:

 這個部分是循環體語句,也就是我們要多次做的事情。

  控制條件語句:

 這個部分在一次循環體結束後,下一次循環判斷條件執行前執行。通過用於控制循環條件中的變量,使得循環在合適的時候結束。

l  for循環語句格式:

  for(初始化語句;判斷條件語句;控制條件語句) {

        循環體語句;

    }

  執行流程

 A:執行初始化語句

 B:執行判斷條件語句,看其結果是true還是false

 如果是false,循環結束。

 如果是true,繼續執行。

 C:執行循環體語句

 D:執行控制條件語句

 E:回到B繼續

  注意事項

  判斷條件語句的結果是一個boolean類型

  循環體語句如果是一條語句,大括號可以省略;如果是多條語句,大括號不能省略。建議永遠不要省略。

  一般來說:有左大括號就沒有分號,有分號就沒有左大括號

循環結構(for循環練習)

請在控制檯輸出數據1-10

請在控制檯輸出數據10-1

求出1-10之間數據之和

求出1-100之間偶數和

求出1-100之間奇數和

5的階乘

在控制檯輸出所有的水仙花數

統計水仙花數共有多少個

l 請在控制檯輸出滿足如下條件的五位數

l 個位等於萬位

l 十位等於千位

l 個位+十位+千位+萬位=百位

l 請統計1-1000之間同時滿足如下條件的數據有多少個:

l 對3整除餘2

l 對5整除餘3

l 對7整除餘2

while循環語句

基本格式

   while(判斷條件語句) {

         循環體語句;

   }

擴展格式

   初始化語句;

   while(判斷條件語句) {

         循環體語句;

         控制條件語句;

    }

l for循環語句和while循環語句可以等價轉換,但還是有些小區別的

使用區別:控制條件語句所控制的那個變量,在for循環結束後,就不能再被訪問到了,而while循環結束還可以繼續使用,如果你想繼續使用,就用while,否則推薦使用for。原因是for循環結束,該變量就從內存中消失,能夠提高內存的使用效率。

場景區別:

for循環適合針對一個範圍判斷進行操作

while循環適合判斷次數不明確操作

do…while循環語句

l do…while循環語句格式:

基本格式

   do {

         循環體語句;

   }while((判斷條件語句);

擴展格式

   初始化語句;

   do {

         循環體語句;

         控制條件語句;

    } while((判斷條件語句);

l 三種循環語句其實都可以完成一樣的功能,也就是說可以等價轉換,但還是有小區別的:

do…while循環至少會執行一次循環體。

for循環和while循環只有在條件成立的時候纔會去執行循環體

l 注意事項:

寫程序優先考慮for循環,再考慮while循環,最後考慮do…while循環。

如下代碼是死循環

while(true){}

for(;;){}:第二個條件不寫默認爲true

l 需求:請輸出一個4行5列的星星(*)圖案。

l 需求:請輸出如下圖形

                     *

                     **

                     ***

                     ****

                     *****

l 需求:在控制檯輸出九九乘法表。

l break 中斷

跳出單層循環

跳出多層循環

帶標籤的跳出

格式:標籤名: 循環語句

標籤名要符合Java的命名規則

在選擇結構switch語句中

在循環語句中

離開使用場景的存在是沒有意義的

 

l continue繼續

l continue的使用場景:

在循環語句中

離開使用場景的存在是沒有意義的

l continue的作用:

單層循環對比break,然後總結兩個的區別

break 退出當前循環

continue 退出本次循環

也可以帶標籤的使用(不演示了)

做一個練習

 

l return返回

l return關鍵字不是爲了跳轉出循環體,更常用的功能是結束一個方法,也就是退出一個方法。跳轉到上層調用的方法。這個在方法的使用那裏會在詳細的講解。

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章