第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程
首頁 慕課教程 Java 入門教程 Java 入門教程 Java 表達式、語句和塊

Java 表達式、語句和塊

我們在前面的小節(jié)中,已經(jīng)學(xué)習(xí)了變量和運算符。有了這些前置知識,我們就可以學(xué)習(xí)表達式、語句和塊了。

運算符可用于構(gòu)建表達式,表達式可以進行值的計算,它是語句的核心組成部分;而語句是指令式編程語言中最小的獨立元素;多條語句又可以組成語句塊。本小節(jié)我們將學(xué)習(xí)表達式的概念和常用分類,也將了解到什么是語句和塊

1. 表達式

1.1 概念

表達式,是由數(shù)字、運算符、數(shù)字分組符號(括號)、自由變量和約束變量等以能求得數(shù)值的有意義排列方法所得的組合。約束變量是在表達式中已被指定數(shù)值,而自由變量則可以在表達式之外另行指定數(shù)值。

Java 中,表達式是根據(jù) Java 語法由變量運算符方法調(diào)用組成的結(jié)構(gòu),表達式的結(jié)算結(jié)果為單個值。
表達式實例:

實例演示
預(yù)覽 復(fù)制
復(fù)制成功!
public class Expression {
  	public static void main(String[] args) {
      	int a = 10, b = 20;
      	// (a + b) * 2 就是一個算數(shù)表達式
      	int c = (a + b) * 2;
      	// c > b 就是一個布爾表達式
      	if (c > b) { // if語句將在下一小節(jié)講到,此處只需知道 c > b 是一個表達式即可
          	System.out.println("c大于b");
        }
    }
}
運行案例 點擊 "運行案例" 可查看在線運行效果

上面代碼中,(a + b) * 2 就是一個算數(shù)表達式,而 c > b 就是一個布爾表達式,代碼中的 if 語句將在下一小節(jié)講到,此處只需知道 c > b 是一個表達式即可。

下面我們將圍繞算數(shù)表達式和布爾表達式來學(xué)習(xí)表達式。

1.2 分類

1.2.1 算數(shù)表達式

算數(shù)表達式是最常用的表達式,又稱為數(shù)學(xué)表達式。它是通過算術(shù)運算符來進行運算的數(shù)學(xué)公式。

為了使用 Java 進行算數(shù)運算,首先必須至少聲明一個變量。如下:

int num = 10;

變量創(chuàng)建后,可以使用算數(shù)運算符+、-*、/%、++、 -- )來操作變量的值。使用算數(shù)表達式的實例如下:

實例演示
預(yù)覽 復(fù)制
復(fù)制成功!
public class ArithmeticExpression1 {
  	public static void main(String[] args) {
      	int num = 10;
      	int result = num / 3;
      	System.out.println( num + " / 3 = " + result);
    }
}
運行案例 點擊 "運行案例" 可查看在線運行效果

編譯執(zhí)行程序,屏幕上將會打?。?/p>

10 / 3 = 3

對于操作數(shù)為整型的除法表達式,其計算結(jié)果將始終取整數(shù)部分。所以上面的 10 / 3 的結(jié)果等于 3。如果我們想得到小數(shù),可以使用浮點類型的變量來作為操作數(shù)(10.0 / 3),其返回的值也是一個浮點型。

除了除法表達式之外,在使用自增 / 自減表達式運算的時候,也要額外注意前后自增 / 自減運算符的差別。我們來看下面一個實例:

實例演示
預(yù)覽 復(fù)制
復(fù)制成功!
public class ArithmeticExpression2 {
  	public static void main(String[] args) {
     	// 前自增
      	System.out.println("------ 前自增 ------");
	    int num = 10;
      	System.out.println("++num = " + (++num));
      	System.out.println("num = " + num);
      	// 前自減
        System.out.println("------ 前自減 ------");
	    num = 10;
      	System.out.println("--num = " + (--num));
      	System.out.println("num = " + num);

      	// 后自增
        System.out.println("------ 后自增 ------");
	    num = 10;
      	System.out.println("num++ = " + (num ++));
        System.out.println("num = " + num);
      	// 前自減
      	System.out.println("------ 前自減 ------");
      	num = 10;
      	System.out.println("num-- = " + (num --));
        System.out.println("num = " + num);
    }
}
運行案例 點擊 "運行案例" 可查看在線運行效果

注意觀察前后自增自減的區(qū)別,運行結(jié)果:

------ 前自增 ------
++num = 11
num = 11
------ 前自減 ------
--num = 9
num = 9
------ 后自增 ------
num++ = 10
num = 11
------ 前自減 ------
num-- = 10
num = 9

結(jié)論:

  1. 前自增 / 自減的運算規(guī)則是:先進行自增或者自減運算,再進行表達式運算;

  2. 后自增 / 自減的運算規(guī)則是:先進行表達式運算,再進行自增或者自減運算。

1.2.2 布爾表達式

布爾表達式(Boolean expression)的結(jié)果只有 true(真)和 false(假)兩個值。在 Java 語言中,布爾表達式可以使用關(guān)系運算符邏輯運算符來代替算數(shù)運算符。

我們來看一個使用關(guān)系運算符的實例:

實例演示
預(yù)覽 復(fù)制
復(fù)制成功!
public class BooleanExpression1 {
		public static void main(String[] args) {
      	// 初始化兩個整型變量a、b,值分別為2、3
      	int a = 2, b = 3;
      	// 分別打印比較運算符比較的結(jié)果
      	System.out.println(a == b);
      	System.out.println(a != b);
      	System.out.println(a > b);
      	System.out.println(a < b);
      	System.out.println(a >= b);
      	System.out.println(a <= b);
    }
}
運行案例 點擊 "運行案例" 可查看在線運行效果

請閱讀上面代碼,并算出每一次打印的結(jié)果。這里不再展示代碼打印結(jié)果。

布爾表達式常作為條件分支語句中的條件。因此下面的示例需要你對條件語句有一定的了解,我們再來看一個稍微復(fù)雜一些的實例:

實例演示
預(yù)覽 復(fù)制
復(fù)制成功!
public class BooleanExpression2 {
  	public static void main(String[] args) {
        // 初始化4個整型變量
      	int i = 4, j = 5, k = 7, m = 8;
        // i > j && m < k++ 即為條件表達式
      	if(i > j && m < k++) {
          	k++;
        } else {
          	k--;
        }
      	System.out.println("k = " + k);
    }
}
運行案例 點擊 "運行案例" 可查看在線運行效果

編譯執(zhí)行代碼,屏幕上將會打?。?/p>

k = 6

上述代碼,是使用邏輯運算符和算數(shù)運算符結(jié)合的布爾表達式示例,如果布爾表達式 i > j && m < k++ 結(jié)果為真,則執(zhí)行 if 分支,k 自增 1,否則執(zhí)行 else 分支,k 自減 1,最后打印出 k 的值。由于 i 的值小于 j,并且 && 運算符有短路作用,所以 m < k++ 不做運算,直接走到 else 分支,最后得到結(jié)果 k = 6。

這里再次強調(diào)一下邏輯運算符的短路:

在表達式中 (a && b),如果 a 為假,則 b 不會被求值,因為無論如何表達式都會為假。

同理,在表達式中 (a || b),如果 a 為真,則 b 不會被求值,因為無論如何表達式都會為真。

這就是我們所說的短路。如果想要取消短路,可以使用 & 代替 &&、使用 | 代替 ||,但是不建議這樣寫,會降低代碼的可讀性。

試想,如果將表達式中 i > j && m < k++&& 改為 &,變量 k 的值將會是多少?

2. 語句

在計算機科學(xué)的編程中,一個語句是指令式編程語言中最小的獨立元素,語句用以表達程序要執(zhí)行的一些動作。多數(shù)語句是以高級語言編寫成一個或多個語句的序列,用于命令計算機執(zhí)行指定的一系列操作。

語句和自然語言(例如英語、漢語)中的句子大致相同。一條語句構(gòu)成了完整的執(zhí)行單元。通過使用英文分號(;)終止表達式,可以將以下類型的表達式制成語句:

  • 賦值表達式
  • 自增 / 自減 ++--
  • 方法調(diào)用
  • 對象創(chuàng)建表達式(面向?qū)ο蟛糠謱W(xué)到)

請結(jié)合如下示例理解語句的概念:

變量聲明語句:

int age;

賦值語句:

age = 20;

自增語句:

age ++;

方法調(diào)用語句:

System.out.println("Hello World! ";

3. 塊

塊通常用來將兩條或多條語句組合在一起,使其在格式上看更像一條語句。

一堆語句可以放在大括號中,以作為單個塊執(zhí)行??梢詾榇祟愓Z句命名或為其提供執(zhí)行條件(下一節(jié)的條件判斷將會講到)。

下面是將一系列的語句放在一個塊中的示例代碼:

{
    int a = 1;
    int b = 2;
    int c = 3;
    int result = a + b + c;
}

4. 小結(jié)

本節(jié)我們學(xué)習(xí)了表達式,它的計算結(jié)果為單獨的值。還要特別注意前后自增 / 自減的區(qū)別,要理解邏輯運算符在表達式中的短路作用,這在任何語言的基礎(chǔ)面試中都會經(jīng)??嫉?。對于語句和塊的概念,我們也有了一個初步的認識,想要完全理解這些內(nèi)容,還需要繼續(xù)向下學(xué)習(xí)更多知識。下一小節(jié)開始,我們將學(xué)習(xí) Java 條件語句、循環(huán)語句等內(nèi)容,這些都將加深你對本節(jié)概念的理解。