世界速看:【學(xué)懂Java】(二)流程控制語(yǔ)句

2023-01-12 10:09:31 來(lái)源:51CTO博客

流程控制語(yǔ)句是用來(lái)控制程序中各語(yǔ)句執(zhí)行順序的語(yǔ)句,可以把語(yǔ)句組合成能完成一定功能的小邏輯模塊。包含順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。

順序結(jié)構(gòu)不必多說(shuō)。


(相關(guān)資料圖)

一.分支結(jié)構(gòu)

if語(yǔ)句(單分支選擇結(jié)構(gòu))

定義

if語(yǔ)句對(duì)條件表達(dá)式進(jìn)行一次測(cè)試,若測(cè)試為真,則執(zhí)行下面的語(yǔ)句,否則跳過(guò)該語(yǔ)句

使用案例

1.隨機(jī)得到0-5之間的數(shù),并判斷是否大于2

public class Judge{  public static void main(String[] args)  {    int r = (int)(Math.random()*10);    double PI = 3.14;    double area = PI * r * r;    double length = 2 * PI * r;    if(area >= length)    {      System.out.println("面積大于等于周長(zhǎng)");    }        else        {      System.out.println("周長(zhǎng)大于面積");    }        System.out.println("周長(zhǎng)是"+length);        System.out.println("面積是"+area);  }}

2.祝你好運(yùn)

import java.util.Scanner;public class AddCust{    public static void main(String[] args)  {        System.out.println("信息錄入系統(tǒng)");    System.out.println("添加用戶信息");    //創(chuàng)建Scanner對(duì)象    Scanner sc = new Scanner(System.in);    System.out.println("請(qǐng)輸入會(huì)員ID<4位整數(shù)>");    String number = sc.nextLine();    System.out.println("請(qǐng)輸入會(huì)員生日<年/月/日>");    String birthday = sc.nextLine();    System.out.println("請(qǐng)輸入會(huì)員密碼");    String score = sc.nextLine();        if(number.length()==4)    {      System.out.println("會(huì)員信息如下");      System.out.println(number+"\t"+birthday+"\t"+score);    }    else    {      System.out.println("會(huì)員號(hào)碼輸入錯(cuò)誤,請(qǐng)輸入4位整數(shù)");          }  }}

if-else語(yǔ)句(雙分支選擇結(jié)構(gòu))

定義

當(dāng)條件表達(dá)式為真時(shí),執(zhí)行語(yǔ)句塊1,否則執(zhí)行語(yǔ)句塊2,也就是else部分

使用案例

面積與周長(zhǎng)

public class Judge{  public static void main(String[] args)  {    int r = (int)(Math.random()*10);    double PI = 3.14;    double area = PI * r * r;    double length = 2 * PI * r;    if(area >= length)    {      System.out.println("面積大于等于周長(zhǎng)");    }        else        {      System.out.println("周長(zhǎng)大于面積");    }        System.out.println("周長(zhǎng)是"+length);        System.out.println("面積是"+area);  }}

信息錄入

import java.util.Scanner;public class AddCust{    public static void main(String[] args)  {        System.out.println("信息錄入系統(tǒng)");    System.out.println("添加用戶信息");    //創(chuàng)建Scanner對(duì)象    Scanner sc = new Scanner(System.in);    System.out.println("請(qǐng)輸入會(huì)員ID<4位整數(shù)>");    String number = sc.nextLine();    System.out.println("請(qǐng)輸入會(huì)員生日<年/月/日>");    String birthday = sc.nextLine();    System.out.println("請(qǐng)輸入會(huì)員密碼");    String score = sc.nextLine();        if(number.length()==4)    {      System.out.println("會(huì)員信息如下");      System.out.println(number+"\t"+birthday+"\t"+score);    }    else    {      System.out.println("會(huì)員號(hào)碼輸入錯(cuò)誤,請(qǐng)輸入4位整數(shù)");          }  }}

If-else if-else(多分支選擇結(jié)構(gòu))

定義

逐條if語(yǔ)句進(jìn)行判斷,條件匹配進(jìn)入語(yǔ)句體,否則對(duì)if語(yǔ)句繼續(xù)匹配

使用案例

年紀(jì)怎么叫

public class AgeName{  public static void main(String[] args)  {    int age = (int)(Math.random()*1000);    if(age<10)    {      System.out.println("兒童");    }    else if(age<20)    {      System.out.println("少年");    }    else if(age<30)    {      System.out.println("青年");    }    else if(age<50)    {      System.out.println("中年");    }    else if(age<120)    {      System.out.println("老年");    }    else    {      System.out.println("建國(guó)之后不準(zhǔn)成精");    }  }}

嵌套if的判斷定義

if(條件1){  if(條件2)   {    //代碼塊1  }   else   {    //代碼塊2  }} else {  //代碼塊3}

使用案例

比賽

public class AgeName{  public static void main(String[] args)  {    int time = (int)(Math.random()*40);    if(time<20)    {      System.out.println("入選");      String sex = ((int)(Math.random()*2))==0?"woman":"man";      if(sex=="woman")      {        System.out.println("進(jìn)入女子組");      }else      {        System.out.println("進(jìn)入男子組");      }    }    else    {      System.out.println("未入選");    }  }}

switch多分支選擇結(jié)構(gòu)

定義

根據(jù)表達(dá)式值的不同執(zhí)行許多不同的操作switch語(yǔ)句會(huì)根據(jù)表達(dá)式的值從相匹配的執(zhí)行,一直執(zhí)行到break標(biāo)簽處、開始ak語(yǔ)句處或者是switch語(yǔ)句的末尾。與任一case值不匹配,則進(jìn)入default語(yǔ)句(如果有的話)只能處理等值條件判斷的情況,且表達(dá)式必須為byte,short,int或char類型 ,不能是String或double,float.1.7之后可以使用string常量值必須是與表達(dá)式類型兼容的特定的一個(gè)常量不允許有重復(fù)的case值default子句為可選

使用案例

元音輔音判斷

char c = ‘a(chǎn)’;int rand =(int) (Math.random()*26);char c2 = (char)(c+rand);System.out.print(c2 + “: ”);switch (c2) {  case ‘a(chǎn)’:  case ‘e’:  case ‘i’:  case ‘o’:  case ‘u’:    System.out.println(“元音”);     break;  case ‘y’:  case ‘w’:    System.out.println(“半元音”);     break;  default:    System.out.println(“輔音”);}

二.循環(huán)結(jié)構(gòu)

while循環(huán)

使用邏輯

在循環(huán)剛開始時(shí),會(huì)計(jì)算一次“布爾表達(dá)式”的值,若條件為真,執(zhí)行循環(huán)體。而對(duì)于后來(lái)每一次額外的循環(huán),都會(huì)在開始前重新計(jì)算一次。語(yǔ)句中應(yīng)有使循環(huán)趨向于結(jié)束的語(yǔ)句,否則會(huì)出現(xiàn)無(wú)限循環(huán)–––"死"循環(huán)。

包含

初始化:變量的初始化條件判斷:必須要求返回true或者false的值循環(huán)體:具體的要執(zhí)行的邏輯代碼迭代變量:促使此循環(huán)結(jié)束

案例

求100以內(nèi)偶數(shù)和

public class Sum{  public static void main(String[] args)  {          int i = 1;    int sum = 0;    while(i<=100)    {      if(i % 2 == 0)      {        sum+=i;      }      i++;    }    System.out.println("偶數(shù)和為"+sum);  }}

do-while循環(huán)

與while循環(huán)類似,只不過(guò)while是先判斷后執(zhí)行;do-while是先執(zhí)行后判斷。

do-while至少執(zhí)行一次

for循環(huán)

語(yǔ)法形式

for (初始表達(dá)式;布爾表達(dá)式;步進(jìn)){//循環(huán)體;}

注意

for循環(huán)在執(zhí)行條件判斷后,先執(zhí)行程序部分,再執(zhí)行步進(jìn)。在for詫句的初始化部分聲明的變量,其作用域?yàn)檎麄€(gè)for循環(huán)體“初始化”和“循環(huán)條件表達(dá)式”部分可以使用逗號(hào)來(lái)執(zhí)行多個(gè)操作如果三個(gè)部分都為空語(yǔ)句(分號(hào)不能?。喈?dāng)于一個(gè)無(wú)限循環(huán)

三.break、continue和return

?break:

改變程序控制流,用于do-while、while、for中時(shí),可跳出循環(huán)而執(zhí)行循環(huán)后面的語(yǔ)句

?continue :

叧能用在循環(huán)里,continue 作用:跳過(guò)循環(huán)體中剩余的語(yǔ)句而執(zhí)行下一次循環(huán)

return:

?語(yǔ)句從當(dāng)前方法退出,返回到調(diào)用該方法的語(yǔ)句處,并且從該語(yǔ)句的下條語(yǔ)句處繼續(xù)執(zhí)行程序。

返回語(yǔ)句的兩種格式

return expression返回一個(gè)值給調(diào)用該方法的語(yǔ)句。返回值的數(shù)據(jù)類型必須和方法聲明中的返回值類型一致或是精度低于聲明的數(shù)據(jù)類型。return當(dāng)方法聲明中用void聲明返回類型為空時(shí),應(yīng)使用這種返回類型,它不返回任何值。?

四.遞歸算法

定義

程序調(diào)用自身的編程技巧稱為遞歸。一個(gè)過(guò)程或函數(shù)在其定義或說(shuō)明中有直接或間接調(diào)用自身的一種方法。

?遞歸問(wèn)題的特點(diǎn)

一個(gè)問(wèn)題可被分解為若干層簡(jiǎn)單的子問(wèn)題子問(wèn)題和其上層問(wèn)題的解決方案一致外層問(wèn)題的解決依賴于子問(wèn)題的解決?

組成

遞歸結(jié)束條件。什么時(shí)候不調(diào)用自身方法。如果沒(méi)有條件,將陷入死循環(huán)。遞歸體。什么時(shí)候需要調(diào)用自身方法。

?遞歸的優(yōu)點(diǎn)

簡(jiǎn)單的程序

遞歸的缺點(diǎn)

但是遞歸調(diào)用會(huì)占用大量的系統(tǒng)堆棧,內(nèi)存耗用多,在遞歸調(diào)用層次多時(shí)速度要比循環(huán)慢的多?

標(biāo)簽: 選擇結(jié)構(gòu) 條件表達(dá)式 大于等于

上一篇:光纖跳線型號(hào)有哪些(光纖跳線是什么意思)
下一篇:熱門:Modbus Slave緩沖區(qū)溢出漏洞CVE-2022-1068分析與復(fù)現(xiàn)