跟我學java編程—Java嵌套if

2020-12-13 米粒教育

除了使用簡單if和多重if之外,還可以將整個if塊插入另一個if塊中,這種結構稱為嵌套if。嵌套if主要用於只有當前提條件滿足時,才判斷後續條件是否滿足。例如:一個活動計劃的安排,如果今天是工作日,則去上班,如果今天是周末,則外出遊玩;同時,如果周末天氣晴朗,則去室外遊樂場遊玩,否則去室內遊樂場遊玩。

嵌套if結構的語法如下:

在編寫嵌套if結構時,有時會引發一些疑問,下面是一個例子:

按條件語句的語法形式,上面的例子似乎有兩種可能的解釋,第一種理解:外層的if是一個沒有else部分的條件語句,最後的else部分屬於內層的if語句;第二種理解:內層if是一個不帶else部分的條件語句,最後的else屬於外層的if條件語句。

為了避免這種二義性,Java語言規定,每個else部分總是屬於前面最近的那個缺少對應的else部分if語句。根據這一規定,上面的例子第一種解釋是正確的,第二種解釋是不正確的。

因此,在編寫代碼時,儘量把嵌入的if語句塊用「{」和「}」括起來,避免發生理解上的二義性。如果我們真的需要寫出具有第二種意義的嵌套條件語句,那麼,就應該採用下面的寫法:

示例1:編寫一個程序,要求用戶輸入兩個數值,通過嵌套if結構判斷兩個數值的大小,並輸出相應信息。

在D盤Java目錄下,新建「EmbedSample.java」文件。用記事本打開「EmbedSample.java」文件,輸入以下代碼:

代碼結構分析

程序功能主要是演示嵌套if結構的使用。

採用嵌套結構實質上是為了進行多分支選擇,判斷兩個數值的大小實際上有三種選擇,即num1=num2、num1<num2或num1>num2,這種問題用if-else-if結構也可以完成,而且程序更加清晰。因此,在一般情況下,較少使用if的嵌套結構,以使程序更便於閱讀和理解。

編譯「EmbedSample.java」文件,在命令行窗口輸入「javac EmbedSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java EmbedSample」運行Java程序,命令行窗口顯示如下信息:

圖 7-4 if嵌套結構示例執行結果

從上述結果可以看出,輸入相同或不同的兩個數值,程序能夠正確判斷兩個數值的大小。

在編寫代碼時,如果要使用嵌套if結構,儘量把嵌入的if語句塊用「{」和「}」括起來,一方面可以提高代碼的可理解性和易讀性;另一方面也可以預防因if和else匹配錯誤,使程序發生不可預知的結果,增加程序調試難度。

編寫一個程序,要求用嵌套if結構實現。提示用戶輸入用戶名,然後再提示輸入密碼。如果用戶名是"admin"並且密碼是「888888」,則提示輸入正確,否則提示輸入錯誤。

相關焦點

  • 跟我學java編程—深入理解while嵌套
    就像if語句可以嵌套一樣,一個循環也可以嵌套在另一個循環中,一個循環中含有另一個循環就稱為嵌套循環。嵌套循環的工作原理如下:首先外循環的第一輪觸發內循環,然後內循環將一直執行到完成為止,然後,外循環的第二輪再次觸發內循環,此過程不斷重複直到外循環結束,使用嵌套循環時,只有在內循環完全結束後,外循環才會執行下一趟循環,一個while循環可以嵌套在另一個while循環中,示例1演示了嵌套while循環的用法。示例1:用*輸出一個直角三角形圖案。
  • 跟我學java編程—深入理解for語句的嵌套循環
    嵌套循環時,必須將被嵌套的循環語句完整地包含在外層循環的循環體內,下面給出一些循環嵌套的示例。用記事本打開「ForSample1.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示for嵌套循環的使用方法。
  • 跟我學java編程—Java字符串類型
    例如:「I want to learn Java programming」、「我要學Java編程」、「3+5=8」、「abc」等等。四則運算器程序需要存儲用戶輸入的計算表達式,計算表達式由多個字符組合而成,用前面所掌握的Java數據類型,不適合存儲計算表達式。程序需要一個新的類型來存儲計算表達式,這個新的類型就是字符串類型。
  • 跟我學java編程—Java多重if結構
    在某些情況下,需要檢查多重條件,解決這種情況可用多重if、嵌套if或switch結構來解決,本節將具體介紹多重if結構。在進行條件判斷時,常常會遇到一種情況,如果條件的值為真,則執行某些操作,否則,進一步進行條件判斷,執行其它操作。例如:四則運算器程序在計算用戶輸入的算式時,首先從左到右掃描算式。
  • 跟我學java編程—Java運算符的優先級
    )執行 a + 18 % 4 ,因為運算符%的優先級高於運算符+,該語句先執行取餘運算,再執行加法運算,其結果為14;(2)執行( a + 18 ) % 4 ,因為小括號的優先級最高,該語句先執行小括號裡的表達式a+18,再執行取餘運算,其結果為6;(3)執行 a * ( ( a + 18 ) % 4 ),該語句括號內嵌套括號
  • 跟我學java編程—Java表達式
    2其中,a、b、2為操作數,a和b為變量,2為數值常量,+為運算符② 『a』 + 3其中,『a』為字符常量,參與計算時其數值為該字符所在字符集的編碼值,『a』為ASCII嗎是,表達式『a』 + 3等同於97+3③ 「study」 + 「java
  • 跟我學java編程—Java的格式化輸出
    示例1:一個簡單格式化輸出的例子在D盤Java目錄下,新建「PrintfSample.java」文件。編譯「PrintfSample.java」文件,在命令行窗口輸入「javac PrintfSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java PrintfSample」運行Java程序,命令行窗口顯示如下信息: 圖 5—8 簡單格式化輸出執行結果從運行結果可以看出,printf方法可以控制浮點數小數位數的輸出
  • 跟我學java編程—Java邏輯運算符
    示例1:邏輯運算符在D盤Java目錄下,新建「LogicSample.java」文件。用記事本打開「LogicSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示邏輯運算符的用法。類似語句「bJudge = !
  • 跟我學java編程—理解Java包的概念
    在java中用關鍵字「package」來創建包,HelloWorld項目HelloWorld.java給出了包創建代碼樣例:HelloWorld項目包邏輯結構如下圖所示:對應文件目錄hello下的HelloWorld.java。
  • 跟我學java編程—Java的Scanner類
    用記事本打開「ScannerInitSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示Scanner如何聲明及初始化。語句「import java.util.*;」,用於導入包含Scanner的類庫,Scanner包含在Java 核心類庫util中,要使用Scanner類,必須導入java.util庫,類庫導入關鍵字為import。
  • 跟我學java編程—Java算術運算符
    示例1:加減乘除操作符運算在D盤Java目錄下,新建「OperationSample.java」文件。編譯「OperationSample.java」文件,在命令行窗口輸入「javac OperationSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java OperationSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—Java while循環語句
    編譯「LoopSample1.java」文件,在命令行窗口輸入「javac LoopSample1.java」並執行命令,編譯通過後,在命令行窗口輸入「java LoopSample1」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—Java條件運算符
    在D盤Java目錄下,新建「TaxSample.java」文件。用記事本打開「TaxSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示條件運算符的使用。編譯「TaxSample.java」文件,在命令行窗口輸入「javac TaxSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java TaxSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—認識java語言的字符類型
    用記事本打開「CharSample.java」文件,輸入以下代碼:編譯「CharSample.java」文件,在命令行窗口輸入「javac CharSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java CharSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—Java簡單條件結構
    在D盤Java目錄下,新建「ConditionSample1.java」文件。用記事本打開「ConditionSample1.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示if語句的使用。
  • 跟我學java編程—Java的switch結構
    在D盤Java目錄下,新建「CaseSample.java」文件。用記事本打開「CaseSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示switch結構的使用。編譯「CaseSample.java」文件,在命令行窗口輸入「javac CaseSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java CaseSample」運行Java程序,命令行窗口顯示如下信息:
  • 學好java,掌握java編程思想很重要!學習java分三步
    浮雲我是一個剛剛畢業的大學生,專業是學的java,但是由於在大學時期貪玩,打遊戲,導致專業技術不過關,因此,在做了一番思想鬥爭過後,我決定了在我所在的城市找了一個培訓學校,所以我也就從頭學習java了。
  • 跟我學java編程—Java跳轉語句—break語句
    示例1:使用break語句退出循環在D盤Java目錄下,新建「BreakSample1.java」文件。用記事本打開「BreakSample1.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示break語句的使用。
  • 日常疑惑:編程學Java還是學C語言?
    這兩門程式語言都是IT行業的寵兒,Java與和C語言各自的技術特點、應用方向上有所不同,沒有伯仲之分,所以這也讓初學者們覺得很難選:應該選擇哪個做為入門語言呢?從學習的難易度上來說,java語言比C語言要簡單。
  • java編程從入門到放棄?關於Java自學,我的3點思考
    2、如何自學java?有了堅定的學習信念後,咱們再來說怎麼學。網上Java學習的資料多如牛毛,但我們首先要有個清晰的學習思路。我個人覺得java學習大致可以按這3個階段來:第一階段:基礎課程學習包含Java開發介紹、Java數組、Java面向對象、常用基礎類、集合、IO流、多線程、異常、反射等;