C語言中文網 目錄

Java條件運算符(?:)

條件運算符的符號表示為“?:”,使用該運算符時需要有三個操作數,因此稱其為三目運算符。使用條件運算符的一般語法結構為:
result=<expression>?<statement1>:<statement3>;

當 expression 為真時,執行 statement1, 否則就執行 statement3。此三元運算符荽求返回一個結果,因此要實現簡單的二分支程序,即可使用該條件運算符。

下面是一個使用條件運算符的示例。
int x,y,z;
x=6,y=2;
z=x>y?x-y:x+y;

在這里要計算 z 的值,首先要判斷 x>y 表達的值,如果為 true,z 的值為 x-y;否則 z 的值為 x+y。很明顯 x>y 表達式結果為 true,所以 z 的值為 4。

技巧:可以將條件運算符理解為 if-else 語句的簡化形式,在使用較為簡單的表達式時,使用該運算符能夠簡化程序代碼,使程序更加易讀。

在使用條件運算符時,還應該注意優先級問題,例如下面的表達式:
x>y ? x-=y : x+=y;

在編譯時會出現語法錯誤,因為條件運算符優先于賦值運算符,上面的語句實際等價于:
(x>y ? x-=y : x)+=y;

而運算符“+=”是賦值運算符,該運算符要求左操作數應該是一個變量,因此出現錯誤。為了避免這類錯誤,可以使用括號“0”來加以區分。例如,下面是正確的表達式。
(x>y) ? (x-=y): (x+=y);

例 1

在程序中聲明 3 個變量 x、y、z,并由用戶從鍵盤輸入 x 的值,然后使用條件運算符向變量 y 和變量 z 賦值。 實現代碼如下:
public class Test9
{
    public static void main(String[] args)
    {
        int x,y,z;    //聲明三個變量
        System.out.print("請輸入一個數:");
        Scanner input=new Scanner(System.in);
        x=input.nextInt(); //由用戶輸入x的值

        //判斷x的值是否大于5,如果是y=x,否則y=-x
        y=x>5?x:-x;

        //判斷y的值是否大于x,如果是z=y,否則z=5
        z=y>x?y:5;

        System.out.printf("x=%d \n",x);
        System.out.printf("y=%d \n",y);
        System.out.printf("z=%d \n",z);
    }
}

保存程序并運行,運行效果如下所示:
請輸入一個數:58
x=58
y=58
z=5 
請輸入一個數:4
x=4
y=-4
z=5 

在該程序中,首先輸入 x 的值為 58,然后判斷 x 的值是否大于 5,顯然條件是成立,則 y 的值為 x,即 y=58。接著判斷 y 的值是否大于 x,因為 y 的值和 x 的值都為 58,所以該條件是不成立的,則 z=5。再次輸入 x 的值為 4,然后判斷 x 的值是否大于 5,不成立,則 y=-4;接著判斷 y 的值是否大于 x,不成立,則 z=5。

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo
极速pk10开户