千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > java中的分支結(jié)構(gòu)-if...else...類型

java中的分支結(jié)構(gòu)-if...else...類型

來源:千鋒教育
發(fā)布人:qyf
時間: 2023-03-21 17:12:00 1679389920

java中的分支結(jié)構(gòu)-if...else...類型

  1. if基本語法

  在Java代碼中,如果我們要根據(jù)某個條件來決定是否執(zhí)行一段代碼,就可以考慮使用if語句。if語句的基本語法是:

  if(條件表達(dá)式){

  //滿足條件時要執(zhí)行的語句

  }

  在上面的語法中,會根據(jù)if(條件表達(dá)式)里的計算結(jié)果(true或者false),由JVM決定是否執(zhí)行{}里的代碼塊。如果為true,就執(zhí)行,否則就不執(zhí)行。

  2. if的單分支語句

  首先我們通過一個簡單的需求,來學(xué)習(xí)if的單分支語句。所謂的單分支語句,就是說只有一種判斷情況,條件為真就執(zhí)行,否則就不執(zhí)行。比如這個需求:“如果你年滿18歲,就可以攢勁的節(jié)目”。

  public class Demo01 {

  public static void main(String[] args) {

  // if語句

  //案例1:如果年齡大于等于18歲,就可以看攢勁的節(jié)目了

  System.out.println("請輸入你的年齡");

  //獲取Scanner對象

  Scanner sc=new Scanner(System.in);

  //獲取年齡

  int age = sc.nextInt();

  //如果語句塊{}里面只有一條執(zhí)行語句,{}可以省略,但建議保留。

  if(age >= 18){

  System.out.println("本節(jié)目只對成年人開放,未成年人請?jiān)诟改概阃掠^看,節(jié)目正在緩沖......");

  }

  //案例2:如果身高大于180,且體重小于180,就可以當(dāng)模特

  System.out.println("請輸入你的身高");

  int height = sc.nextInt();

  System.out.println("請輸入你的體重");

  int weight = sc.nextInt();

  //條件表達(dá)式中,可以結(jié)合之前學(xué)習(xí)過的邏輯運(yùn)算符

  //采用短路與&&,提高效率

  if(height > 180 && weight < 180){

  System.out.println("恭喜你,可以當(dāng)模特了");

  }

  }

  }

  另外如果{}語句塊里面只有一條執(zhí)行語句,{}可以省略,但建議保留。因?yàn)槿绻覀儾捎每s進(jìn)的格式,很容易把后面的語句都看成是if語句的執(zhí)行塊,所以不推薦忽略花括號的寫法。

  單分支語句應(yīng)對的情況是很簡單的,在實(shí)際開發(fā)中可能會很復(fù)雜,這就需要使用多分支語句來進(jìn)行處理。

  3. if的多分支語句

  3.1 if...else結(jié)構(gòu)

  if...else...結(jié)構(gòu)會根據(jù)條件表達(dá)式的結(jié)果進(jìn)行判斷,當(dāng)表達(dá)式的結(jié)果為true,則執(zhí)行語句塊A;否則執(zhí)行else后面的語句塊B?;菊Z法結(jié)構(gòu)如下:

  if(邏輯條件){

  //滿足邏輯條件執(zhí)行的代碼

  }else{

  //不滿足邏輯條件執(zhí)行的代碼

  }

  案例如下:

  public class Demo01 {

  public static void main(String[] args) {

  // if多分支語句

  Scanner sc=new Scanner(System.in);

  //案例:如果用戶名為admin、密碼為123456,就跳轉(zhuǎn)到首頁,否則跳轉(zhuǎn)到登錄頁面

  System.out.println("請輸入用戶名");

  String username = sc.next();

  System.out.println("請輸入密碼");

  String password = sc.next();

  //equals()比較方法

  if("admin".equals(username) && "123456".equals(password)){

  System.out.println("跳轉(zhuǎn)首頁");

  }else{

  System.out.println("跳轉(zhuǎn)登錄頁面");

  }

  }

  }

  我們要注意,在java中,"=="比較的是兩個對象的內(nèi)存地址是否相同,String類中的equals()方法比較的是內(nèi)容是否相同。如果是基本數(shù)據(jù)類型,我們可以使用==進(jìn)行比較;而對于String字符串,一般是使用equals()方法進(jìn)行比較。

  另外我們在使用equals()方法進(jìn)行比較時,要采用類似"admin".equals(username)的寫法,而不要采用username.equals("admin")的寫法。因?yàn)閡sername對象的值有可能為null,這樣就可能會產(chǎn)生NullPointerException異常。

  3.2 if多分支

  if多分支就是可以利用多個if ... else if ...else...進(jìn)行串聯(lián)。多分支可以根據(jù)多個條件表達(dá)式的結(jié)果進(jìn)行判斷:

  ●如果條件表達(dá)式1的結(jié)果為true,則執(zhí)行語句塊1;否則去判斷條件表達(dá)式2;

  ●如果條件表達(dá)式2的結(jié)果為true,則執(zhí)行語句塊2,否則去判斷條件表達(dá)式3;

  ● ....

  ●如果所有的條件表達(dá)式結(jié)果都為false,則執(zhí)行語句塊N+1;

  ●else是可選的,根據(jù)需要可以省略。

  if多分支的語法結(jié)構(gòu)如下:

  if(邏輯條件1){

  //滿足邏輯條件1執(zhí)行的代碼

  }else if(邏輯條件2){

  //隱藏條件(不滿足條件1) 滿足邏輯條件2執(zhí)行的代碼

  }else if(邏輯條件3){

  //隱藏條件(不滿足條件1、2) 滿足邏輯條件3執(zhí)行的代碼

  }else{

  //不滿足以上所有邏輯條件執(zhí)行的代碼

  }

  需求案例:請你根據(jù)手上的資金選擇購買的手機(jī)品牌。如果你手里的錢大于10000,就買個蘋果;如果大于7000, 就買個華為;如果大于5000,就買個小米;如果大于3000,就買個諾基亞;否則,乖乖地去打公共電話。

  public class Demo01 {

  public static void main(String[] args) {

  // if多分支語句

  Scanner sc=new Scanner(System.in);

  //請你根據(jù)手上的資金選擇購買的手機(jī)品牌。如果你手里的錢大于10000,就買個蘋果;

  //如果大于7000, 就買個華為;如果大于5000,就買個小米;如果大于3000,就買個諾基亞;

  //否則,乖乖地去打公共電話。

  System.out.println("請輸入余額");

  int money = sc.nextInt();

  if(money > 10000){

  System.out.println("蘋果手機(jī)");

  }else if(money > 7000){ //money <= 10000

  System.out.println("華為手機(jī)");

  }else if(money > 5000){

  System.out.println("小米手機(jī)");

  }else if(money > 3000){

  System.out.println("諾基亞手機(jī)");

  }else{

  System.out.println("打公共電話");

  }

  }

  }

  大家要注意,我們在串聯(lián)使用多個if時,要特別注意判斷順序和邊界條件的判斷。

  4. if嵌套

  if嵌套的語法結(jié)構(gòu)如下:

  if(邏輯條件1){

  if(邏輯條件2){

  //滿足邏輯條件1且滿足條件2執(zhí)行的代碼

  }else{

  //滿足邏輯條件1但不滿足條件2執(zhí)行的代碼

  }

  }else{

  //不滿足邏輯條件1執(zhí)行的代碼

  }

  需求案例:學(xué)校舉行跑步比賽,如果成績在15秒以內(nèi),可以進(jìn)入決賽,男的進(jìn)入男子組決賽,女的進(jìn)入女子組決賽。

  public class Demo01 {

  public static void main(String[] args) {

  // if多條件嵌套

  Scanner sc=new Scanner(System.in);

  //學(xué)校舉行跑步比賽,如果成績在15秒以內(nèi),可以進(jìn)入決賽,男的進(jìn)入男子組決賽,女的進(jìn)入女子組決賽

  System.out.println("請輸入你的比賽成績");

  double score = sc.nextDouble();

  if(score < 15){

  System.out.println("請輸入你的性別");

  String sex = sc.next();

  if("男".equals(sex)){

  System.out.println("恭喜進(jìn)入男子組");

  }else{

  System.out.println("恭喜進(jìn)入女子組");

  }

  }else{

  System.out.println("很遺憾你被淘汰了!!!");

  }

  }

  }

  5.if語句很費(fèi)效率嗎?

  ●在Java中,if語句本身并不是特別費(fèi)效率。if語句的效率通常取決于它所包含的代碼和邏輯。

  ●當(dāng)if語句的判斷條件非常簡單且快速時,它對程序性能的影響通??梢院雎圆挥?。然而,如果if語句的條件比較復(fù)雜,例如需要進(jìn)行多次計算或調(diào)用方法,則會影響程序的性能。

  ●此外,如果if語句的條件經(jīng)常變化,那么編譯器很難對它進(jìn)行優(yōu)化,這可能會導(dǎo)致性能下降。

  ●綜上所述,如果if語句的條件簡單,代碼執(zhí)行效率高,那么它并不會明顯地影響程序性能。但如果if語句的條件較為復(fù)雜或頻繁變化,則需要仔細(xì)考慮如何優(yōu)化程序以提高性能。

  6.java中的else

  在Java中,else if是用于在if語句后添加額外的條件分支的一種語法結(jié)構(gòu)。它允許您檢查多個條件,并在每個條件為真時執(zhí)行相應(yīng)的代碼塊。

  代碼示范:

  if (score >= 90) {

  System.out.println("優(yōu)秀");

  } else if (score >= 80) {

  System.out.println("良好");

  } else if (score >= 70) {

  System.out.println("中等");

  } else if (score >= 60) {

  System.out.println("及格");

  } else {

  System.out.println("不及格");

  }

  ●在這個例子中,我們檢查了一個score變量的值,并根據(jù)它的值輸出不同的文本。如果score大于或等于90,輸出"優(yōu)秀",否則檢查它是否大于或等于80,如果是,輸出"良好",以此類推。如果所有條件都不滿足,最后執(zhí)行else語句中的代碼塊。

  ●需要注意的是,在if語句中,只有第一個條件分支被執(zhí)行。如果第一個條件分支不成立,則繼續(xù)檢查下一個else if語句中的條件分支,直到找到一個滿足條件的分支或者執(zhí)行else語句。

  ●總之,else if語句是Java中用于添加多個條件分支的一種語法結(jié)構(gòu),它允許您檢查多個條件,并在每個條件為真時執(zhí)行相應(yīng)的代碼塊。

  看到現(xiàn)在你知道if和else這對好基友該如何使用了嗎?大家看完一定要多多練習(xí),這樣才能總結(jié)知識點(diǎn)。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截?。?/div>

在Python中,字符串是一種非常常見的數(shù)據(jù)類型,它可以用來表示文本、數(shù)字、符號等內(nèi)容。在實(shí)際應(yīng)用中,我們經(jīng)常需要對字符串進(jìn)行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實(shí)現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應(yīng)用成為人們?nèi)粘I钪惺殖R姷囊环N社交方式。Python語言的Socket模塊是實(shí)現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實(shí)現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計算機(jī)編程中,循環(huán)語句是非常重要的一部分。而while語句是其中最基本也是最常用的一種。它的作用是在滿足一定條件的情況下,重復(fù)執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個集合?

在Python中,集合是一種無序且不重復(fù)的數(shù)據(jù)類型,可以用于存儲一組元素。創(chuàng)建一個集合非常簡單,只需要使用大括號{}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見的命令了。使用cat命令會打印指定文件的所有內(nèi)容到標(biāo)準(zhǔn)輸出上,比...詳情>>

2023-10-31 19:58:15