int max=a>b?a:b;
//這個例子相當於
if(a>b){
max=a;
}else{
max=b;
}
而妳的if(a>b?(a<b?0:1):-1)
先運行小括號裏面的a<b?0:1;
int result=a<b?0:1;
就變成: if(a>b?result:-1)
因此當a>b時,就是true,就執行if裏面的語句,否則就是false,就執行else裏面的語句
如果a=b的話,妳還用判斷大小嗎?兩個值都相等了~排列哪個在前面後面都壹樣~
要判斷a=b可以再寫if語句判斷的~三元運算符只是判斷大小的~~!!
if( a > b ){ System.out.println("1");}
else if( a == b){ System.out.println("0");}
else if (a < b ){System.out.println("-1");}
這個不能用三元運算了~有語句了~!!
妳可以
if( a > b ){ System.out.println("1");}
else if (a < b ){System.out.println("-1");}
else{ System.out.println("0");}