java的if else語句入門

来源:http://www.cnblogs.com/roucheng/archive/2016/06/07/javaifelse.html
-Advertisement-
Play Games

條件語句,是程式中根據條件是否成立進行選擇執行的一類語句,這類語句在實際使用中,難點在於如何準確的抽象條件。例如實現程式登錄功能時,如果用戶名和密碼正確,則進入系統,否則彈出“密碼錯誤”這樣的提示框等。 本部分對於條件語句的介紹,重點在於語法講解和基本的使用,更詳細的使用參看後續的綜合示例部分。 在 ...


 條件語句,是程式中根據條件是否成立進行選擇執行的一類語句,這類語句在實際使用中,難點在於如何準確的抽象條件。例如實現程式登錄功能時,如果用戶名和密碼正確,則進入系統,否則彈出“密碼錯誤”這樣的提示框等。

    本部分對於條件語句的介紹,重點在於語法講解和基本的使用,更詳細的使用參看後續的綜合示例部分。

    在Java語言中,條件語句主要有兩類語法:if語句和switch語句。

 

1 、if語句

    if關鍵字中文意思是如果,其細緻的語法歸納來說總共有三種:if語句、if-else語句和if-else if-else語句,下麵分別進行介紹。http://hovertree.com/menu/java/

 

1.1 if語句

    該類語句的語法格式為:if(條件表達式)

    功能代碼;語法說明:if是該語句中的關鍵字,後續緊跟一對小括弧,該對小括弧任何時候不能省略,小括弧的內部是具體的條件,語法上要求該表達式結果為boolean類型。後續為功能的代碼,也就是當條件成立時執行的代碼,在程式書寫時,一般為了直觀的表達包含關係,功能代碼一般需要縮進。

    需要特別註意的是:

    1、 這裡的功能代碼只能是一行,關於多行結構的功能代碼,後續將說明。

    2、 if(條件表達式)後續一般不書寫分號if語句的執行流程為:如果條件表達式成立,則執行功能代碼,如果條件表達式不成立,則不執行後續的功能代碼。

    示例代碼:

    int a = 10;

    if(a >= 0)

    System.out.println(“a是正數”);

    if( a % 2 == 0)

    System.out.println(“a是偶數”);

    在該示例代碼中,第一個條件是判斷變數a的值是否大於等於零,如果該條件成立則執行輸出,第二個條件是判斷變數a是否為偶數,如果成立也輸出。

    註意以下代碼的執行流程:

    int m = 20;

    if( m > 20)

    m += 20;

    System.out.println(m);

    按照前面的語法格式說明,只有m+=20;這行代碼屬於功能代碼,而後續的輸出語句和前面的條件形成順序結構,所以該程式執行以後輸出的結果為20.如果當條件成立時,需要執行的語句有多句,則可以使用語句塊來進行表述,語法格式如下:

    if(條件表達式){

    功能代碼塊;

    }

    使用這種語法格式,使用一個代碼塊來代替前面的功能代碼,這樣可以在代碼塊內部書寫任意多行的代碼,而且也使整個程式的邏輯比較清楚,所以在實際的代碼編寫中推薦使用該種邏輯。

 

1.2 if-else語句

    if-else語句實現了封閉的條件,在程式中使用的更加常見。其中else關鍵字的作用是“否則”,即條件不成立的情況。

    if-else語句的語法格式如下:

    if(條件表達式)

    功能代碼1;

    else

    功能代碼2;

    語法說明:其中前面的部分和if語句一樣,else部分後面是功能的代碼,按照該語法格式,功能代碼只能有一句。

    執行順序:如果條件成立,則執行if語句中的功能代碼1,否則執行else中的功能代碼2.示例代碼為:

    int n = 12;

    if(n % 2 != 0)

    System.out.println(“n是奇數”);

    else System.out.println(“n不是奇數”);

    則因為n%2的值是0,條件不成立,則執行else語句的代碼,程式輸出“n不是奇數”。

    在實際使用時,為了結構清楚,以及可以在功能代碼部分書寫多行代碼,一般把功能代碼部分使用代碼塊,則語法格式為:

    if(條件表達式){

    功能代碼塊

    }else{

    功能代碼塊

    }

    當程式中有多個if時,else語句和最近的if匹配。示例代碼:

    if(條件1)

    功能代碼1;

    if(條件2)

    功能代碼2;

    else功能代碼3;

    則這裡的else語句和條件2對應的if語句匹配,前面的條件1是一個獨立的語句。在實際代碼中,可以使用大括弧使整個程式的結構更加清楚。

    對於if-else語句來說,因為if的條件和else的條件是互斥的,所以在實際執行中,只有一個語句中的功能代碼會得到執行。

    在實際開發中,有些公司在書寫條件時,即使else語句中不書寫代碼,也要求必須書寫else,這樣可以讓條件封閉。這個不是語法上必須的。

 

 

1.3 if-else

    if-else語句在現實中,有些時候的條件不是一個,而是一組相關的條件,例如將阿拉伯數字轉換為中文大寫,根據分數轉換為對應的等級等,都是多條件的結構,在程式中為了避免寫多個if語句的結構,提供了一類專門的多分支語句,這就是if-else if-else語句。

    if-else if-else語句的語法格式為:

    if(條件1)

    功能代碼1;

    else if(條件2)

    功能代碼2;

    else if(條件3)

    功能代碼3;

    ……

    else功能代碼;

    語法說明:

    1、 else if是else和if兩個關鍵字,中間使用空格進行間隔。

    2、 條件1到條件n都是boolean類型

    3、 else if語句可以有任意多句

    4、 最後的else語句為可選

    5、 如果功能代碼部分不是語句塊,也就是不用大括弧,就只能寫一句。

    執行流程:當條件1成立時,則執行功能代碼1;當條件1不成立且條件2成立時,則執行功能代碼2;如果條件1、條件2都不成立且條件3成立,則執行功能代碼3,依次類推,如果所有條件都不成立,則執行else語句的功能代碼。其執行流程的流程圖如上所示。

    下麵是一個實現根據月份的值,輸出該月份包含的日期數,2月份全部輸出28,不考慮閏年的示例代碼:

    

int month = 3;

    int days = 0;  //日期數

    if(month == 1){

    days = 31;

    }else if(month == 2){

    days = 28;

    } else if(month == 3){

    days = 31;

    } else if(month == 4){

    days = 30;

    } else if(month == 5){

    days = 31;

    } else if(month == 6){

    days = 30;

    } else if(month == 7){

    days = 31;

    } else if(month == 8){

    days = 31;

    } else if(month == 9){

    days = 30;

    } else if(month == 10){

    days = 31;

    } else if(month == 11){

    days = 30;

    } else if(month == 12){

    days = 31;

    }

    System.out.println(days);/* 何問起 hovertree.com */

 

    再來看一個示例代碼,該代碼的功能是實現將百分制的成績轉換為A、B、C、D和E,代碼如下:

   

 int score = 87;

    if(score >= 90){

    System.out.println(‘A’);

    } else if(score >= 80){

    System.out.println(‘B’);

    } else if(score >= 70){

    System.out.println(‘C’);

    } else if(score >= 60){

    System.out.println(‘D’);

    } else{

     System.out.println(‘E’);

    }
/* 何問起 hovertree.com */

 

    從該代碼中可知,每個else if語句在書寫時是有順序的,在實際書寫時,必須按照邏輯上的順序進行書寫,否則將出現邏輯錯誤。

    if-else if-else語句是Java語言中提供的一個多分支條件語句,但是在判斷某些問題時,會書寫的比較麻煩,所以在語法中提供了另外一個語句——switch語句來更好的實現多分支語句的判別。

推薦:http://www.cnblogs.com/roucheng/p/3504465.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • VC++代碼是最接近彙編指令的高級語言,為了更加準確和深刻理解VC++編碼中所涉及的很多技術概念和編譯器參數的含義,從彙編指令層面進行剖析和解讀,有助於開發者更加準確、直觀、深刻理解高級語言中很多概念和技術的真正含義,對程式優化和編碼都有非常實用的重要價值。由於內容很多,我會分解為很多篇章進行解讀實 ...
  • 起源 1950晶體管電腦年代,歐美電腦學家合力所組成的聯席大會共同開發 ALGOL(ALGOrithmic Language),也稱為A語言。 1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。 1967年,英國劍橋大學的 ...
  • urllib 模塊是一個高級的 web 交流庫,其核心功能就是模仿web瀏覽器等客戶端,去請求相應的資源,並返回一個類文件對象。urllib 支持各種 web 協議,例如:HTTP、FTP、Gopher;同時也支持對本地文件進行訪問。但一般而言多用來進行爬蟲的編寫,而下麵的內容也是圍繞著如何使用 u ...
  • 本章內容: 創建類和對象 面向對象三大特性(封裝、繼承、多態) 類的成員(欄位、方法、屬性) 類成員的修飾符(公有、私有) 類的特殊成員 面向對象編程是一種編程方式,此編程方式的落地需要使用 “類” 和 “對象” 來實現,所以,面向對象編程其實就是對 “類” 和 “對象” 的使用。 類就是一個模板, ...
  • 1、PDF下載 蘋果Swift編程語言入門教程【完整中文版】http://www.code4app.com/thread-7878-1-1.htmlThe Swift Programming Language中文完整版 http://www.code4app.com/thread-7966-1-2. ...
  • 回顧Java平臺上Web開發歷程來看,從Servlet出現開始,到JSP繁盛一時,然後是Servlet+JSP時代,最後演化為現在Web開發框架盛行的時代。一般接觸到一個新的Web框架,都會想問這個框架優勢在哪?或者比其他框架好在哪裡?如果沒有使用Spring MVC框架,而是使用其他框架並且能夠很 ...
  • 之前我們使用io流,都是需要一個中間數組,管道流可以直接輸入流對接輸出流,一般和多線程配合使用,當讀取流中沒數據時會阻塞當前的線程,對其他線程沒有影響 定義一個類Read實現Runable介面,實現run()方法,構造方法傳遞PipedInputStream對象 讀取流裡面的數據 定義一個類Writ ...
  • 僅供參考 java springMvc mybatis mylsq 項目搭建 1.開發環境: window 64、jdk 1.7.0_51、eclipse、tomcat 7 2.jdk安裝與環境變數配置 http://jingyan.baidu.com/article/6dad5075d1dc40a ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...