java02-5 if語句和三元運算子的轉換

liuxuhui發表於2021-09-09

如 02-4 所寫的那程式碼,if語句的第二種格式也能完成三目(三元?)運算子可以完成的效果。

所以,大多數情況下,它們可以完成一樣的操作。但,也有區別:

         區別:

                  三元運算子能實現的,if語句都可以實現,但反過來就不成立。

         因為,當if語句控制的操作是一個輸出語句的時候,就不能用三元運算子來實現,

         因為,三元運算子是一個運算子,運算子操作完畢就應該有一個結果,而不是一個輸出。

例子:

        

[程式碼]java程式碼:

1

2

3

4

5

6

7

8

int x = 100;

if(x%2 == 0) {

    System.out.println("100是一個偶數");

}else {

    System.out.println("100是一個奇數");

    }

就不能用三元改進:

String s = (x%2 == 0)?System.out.println("100是一個偶數");:System.out.println("100是一個奇數");;  這樣是錯誤的

例子:

         獲取三個資料中的最大值  , 分別用 if語句 和 三元運算子實現

[程式碼]java程式碼:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

import java.util.Scanner;

 

class LianShou{

    public static void main(String[]   args)

    {

        Scanner   sc = new Scanner(System.in);   //建立鍵盤錄入物件

        //錄入三個資料

        System.out.println("請輸入第一個資料:");

        int a = sc.nextInt();

         

        System.out.println("請輸入第二個資料: ");

        int b = sc.nextInt();

         

        System.out.println("請輸入第三個資料:");

        int c = sc.nextInt();

        //   進行判斷

        int max;

        if(a   > b)

        {

            max   = a;

        }

        else

        {

            max   = b;

        }

        if(max   > c)

        {

            System.out.println("最大的數是: " + max);

        }

        else

        {

            System.out.println("最大的數是: " + c);

        }

    }

}

三元運算子:

[程式碼]java程式碼:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

import java.util.Scanner;

 

class LianShou{

    public static void main(String[]   args)

    {

        Scanner   sc = new Scanner(System.in);   //建立鍵盤錄入物件

        //錄入三個資料

        System.out.println("請輸入第一個資料:");

        int a = sc.nextInt();

         

        System.out.println("請輸入第二個資料: ");

        int b = sc.nextInt();

         

        System.out.println("請輸入第三個資料:");

        int c = sc.nextInt();

        //進行判斷,三元運算子

        int max = (a > b)? a:b;

        int max1 = (max > c)? max:c;

         

        System.out.println("最大的數是:" + max1);

    }

原文連結:http://www.apkbus.com/blog-833059-61629.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756/viewspace-2814722/,如需轉載,請註明出處,否則將追究法律責任。

相關文章