當前位置:首頁 » 編程語言 » java三目

java三目

發布時間: 2022-09-11 23:05:24

1. java三目運算符問題

1、三目運算符 (表達式1)?(表達式2):(表達式3),計算方法是這樣的:表達式1是一個邏輯表達式,如果其值為true,則整個表達式的值為表達式2的值,否則為表達式3的值

2、例子:int i = (5 > 3) ? (5 + 3) : (5 - 3);結果為i = 8.因為5 > 3為true,所以i = 5 + 3.

3、根據三目運算符的從右到左的結合性,我是這樣劃分的
year > a.year ? 1 : (year < a.year ? -1 : (month > a.month ? 1 : (month < a.month ? -1 : (day > a.day ? 1 : (day < a.day ? -1 : 0)))));
所以應該從最右邊的那個表達式開始計算,結果應該是1、0、-1中的一個值。

以上純屬個人理解。沒搞清楚你這個演算法到底是什麼意義。。。。還有你的compare()方法不能聲明為靜態。

2. Java 三目運算符 表達式內為什麼不能進行強制轉換

java三目運算符的形式如下:

  • 條件語句?表達式1:表達式2
    當條件語句判斷是真(true)時,就執行表達式1,否者就執行表達式2

  • 注意 表達式1和表達式2 ,是獨立的,不要用1個強制轉換, 來轉換2個表達式

    每個表達式都要獨立的強制轉換.

  • 如果想要強制轉換2個表達式, 那麼需要在結果前進行轉換

按照你的意圖.進行修改如下

條件是: n1>9

表達式1是:(char)(n1-10+'A')

表達式2是:(char)n1

所以,拼接在一起就是

n1>9?(char)(n1-10+'A'):(char)n1

修改後的輸出語句如下

System.out.println("低四位:"+(n1>9?(char)(n1-10+'A'):(char)n1));//結果輸出了E

上面的做法就比較繁瑣,因為我們要的是轉換結果,而不是轉換每一個表達式,

所以可以做下面的優化

(char)(n1>9?(n1-10+'A'):n1)

修改後的輸出語句如下

System.out.println("低四位:"+(char)(n1>9?(n1-10+'A'):n1));

3. java 四個點是什麼特殊運算符

Java雙冒號(::)

該運算符在Java 8中被用作方法引用(method reference),方法引用是與lambda表達式相關的一個重要特性。它提供了一種不執行方法的方法。為此,方法引用需要由兼容的函數介面組成的目標類型上下文。

大致意思是,使用lambda表達式會創建匿名方法, 但有時候需要使用一個lambda表達式只調用一個已經存在的方法(不做其它), 所以這才有了方法引用!

以下是Java 8中方法引用的一些語法:

  1. 靜態方法引用(static method)語法:classname::methodname 例如:Person::getAge

  2. 對象的實例方法引用語法:instancename::methodname 例如:System.out::println

  3. 對象的超類方法引用語法: super::methodname

  4. 類構造器引用語法: classname::new 例如:ArrayList::new

  5. 數組構造器引用語法: typename[]::new 例如: String[]:new

4. Java三目運算符

這個問題主要考察的應該不是三目運算符,而是java運算的自動轉換。
i為int類型
x為char類型
第一行計算x和0,此時0可以被看作是char類型,所以x並沒有被轉換,而是直接輸出B
第二行計算x和1111111110,而1111111110是無法保存為char類型的,只能當作int,所以此時x需要被強轉成int之後再進行運算,char類型的x在強轉成int之後就變成了他的asc碼。也就是66。
第三行,計算x和i,i是int類型,所以與第二行同理,x被自動轉換成int,結果為66。
如果問題解決,請採納本答案

5. java三目運算符嵌套怎麼用

紅色框框 部分是 解釋 三目運算 嵌套

下面是 代碼


public static void showThreeAlgorithm(){ //三目運算符

/*三目運算相當於

if(i>j){

100;

} else{

200;

}*/

int i = 46;

int j = 97;

int z = i>j?i:j;

int y = i<j?i:j;

System.out.println("i>j?i:j的 值 : "+z);

System.out.println("i<j?i:j的 值 : "+y);

//用三元運算求出判斷兩個值是否相等,不相等 輸出較大的值

int s = i==j?0:i>j?i:j;

// i等於j 則s = 0

// 否則判斷 i 是否大於 j 大於 則 s = i 小於 則 s = j

System.out.println("輸出S的值: "+s);

}

6. java三目運算符

三目運算符a
>
b
?
a
:
b運算規則是:如果?前面的等式為true,即a>b,則執行返回a,否則返回b;
先判斷變數year是否大於對象a的year值,如果大於就返回1,小於就繼續判斷year是否小於對象a的year值,如果小於就返回-1;此後就是year==a.year的情況,依次判斷月份和日

7. java中三目運算符

先學java的叫它,三元運算符;先學c的叫它三目運算符
即( ?: )
如名字表示的三元運算符需要三個操作數。
語法為:條件表達式?表達式1:表達式2。
說明:問號前面的位置是判斷的條件,判斷結果為bool型,為true時調用表達式1,為false時調用表達式2。
其邏輯為:「如果為真執行第一個,否則執行第二個。」

8. 在Java 里什麼時候使用三目運算比較好

需要進行判斷的時候使用三目運算比較好,可以替換if--else

三目運算符,又稱條件運算符。條件表達式b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。

例如:

//判斷一個數的正負
publicStringjudge(inta){

/*if(a>0){
return"a是正數";
}else{
return"a是負數";
}*/

//三目運算符
Stringc=a>0?"a是正數":"a是負數";

returnc;
}

此例子裡面三目運算符與if--else效果是一樣的。

9. 在JAVA中,什麼是單目/雙目/三目運算符

所謂單目運算符就是只有需要一個操作數的運算符,如:--、++同理,雙目運算符就是需要兩個操作數的運算符,如:+、-、*、/、=
等。三目運算符只有一個
?
:
。(需要三個操作數)

10. java 三目運算符

其實這主要是JAVA重載和基本數據類型自動轉型造成的。
JAVA重載:這里主要調用了println(char x) 和println(int x) 兩個方法。
基本數據類型自動轉型原則中有一條:有多種類型混合運算時,系統將所有類型轉換為大的,然後再進行計算。
自動轉型順序:
byte->short(char)->int->long->float->double.
還有0~65535可以認為是int也可以是char。
System.out.println(true?x:0);此處0被認為是char,所以輸出b,倘若把0改為65536,則輸出66.
同理
System.out.println(true?x:1111111110);此處1111111110已經大於了65535,所以x被自動轉型為int再輸出,輸出66.

System.out.println(false?i:x);也是同理,將x轉換為int,輸出 66.
其實我講得也不是非常詳細,有興趣可以仔細看下重載和基本數據類型轉型的章節,希望能幫到你。

熱點內容
巴法雲伺服器帶寬 發布:2025-01-12 13:15:26 瀏覽:676
搭建國外伺服器需要多少錢 發布:2025-01-12 13:08:01 瀏覽:827
我的世界mod伺服器開荒 發布:2025-01-12 13:07:10 瀏覽:757
sql優化書 發布:2025-01-12 13:07:09 瀏覽:455
高校網站伺服器搭建與維護論文 發布:2025-01-12 13:06:31 瀏覽:711
sqlserver實例沒有 發布:2025-01-12 12:57:18 瀏覽:252
代碼文件伺服器地址怎麼寫 發布:2025-01-12 12:50:47 瀏覽:760
java中方法與 發布:2025-01-12 12:50:13 瀏覽:655
如何快速查找c語言編譯時的錯 發布:2025-01-12 12:49:56 瀏覽:32
看門狗上傳病毒 發布:2025-01-12 12:32:54 瀏覽:326