本文目錄一覽:
Java三元運算符
運算符的通用格式如下:
expression1?expression2:expression3
其中,expression1是一個布爾表達式。如果expression1為真,那麼expression2被求值;否則,expression3被求值。整個表達式的值就是被求值表達式(expression2或expression3)的值。expression2和expression3是除了void以外的任何類型的表達式,且它們的類型必須相同。
下面是一個利用運算符的例子:
ratio=denom==0?0:num/denom;
當Java計算這個表達式時,它首先看問號左邊的表達式。如果denom等於0,那麼在問號和冒號之間的表達式被求值,並且該值被作為整個表達式的值。如果denom不等於零,那麼在冒號之後的表達式被求值,並且該值被作為整個表達式的值。然後將整個表達式的值賦給變數ratio。
一、電腦常見問題
主板不啟動,開機無顯示,有顯卡報警聲。
故障原因:一般是顯卡鬆動或顯卡損壞。
處理辦法:打開機箱,把顯卡重新插好即可。要檢查AGP插槽內是否有小異物,否則會使顯卡不能插接到位;對於使用語音報警的主板,應仔細辨別語音提示的內容,再根據內容解決相應故障。
如果以上辦法處理後還報警,就可能是顯卡的晶元壞了,更換或修理顯卡。如果開機後聽到”嘀”的一聲自檢通過,顯示器正常但就是沒有圖像,把該顯卡插在其他主板上,使用正常,那就是顯卡與主板不兼容,應該更換顯卡。
Java解三元二次方程?
解三元方程需要將元處理到最小,轉換成一元計算,你現在給出的公式無法消元,用程序實現的話只能定義三個循環,因為Y是合計值,因此三個循環最大值=Y即可。
int x;
int y;
Scanner scan = new Scanner(System.in);
System.out.print(“請輸入X值: “);
x = Integer.parseInt(scan.next());
System.out.print(“請輸入Y值: “);
y = Integer.parseInt(scan.next());
int set =1;
for(int a=0;a=y;a++){
for(int b=0;b=y;b++){
for(int c=0;c=y;c++){
if(y==a*x*x+b*x+c){
System.out.println(“解法”+set+”:a=”+a+” b=”+b+” c=”+c);
set++;
}
}
}
}
Java 三元運算符
Java提供一個特別的三元運算符(ternary)經常用於取代某個類型的if-then-else語句。這個運算符就是?,並且它在Java中的用法和在C/C++中的幾乎一樣。該符號初看起來有些迷惑,但是一旦掌握了它,用?運算符是很方便高效的。
運算符的通用格式如下:
expression1:expression2:expression3
其中,expression1是一個布爾表達式。如果expression1為真,那麼expression2被求值;否則,expression3被求值。整個表達式的值就是被求值表達式(expression2或expression3)的值。expression2和expression3是除了void以外的任何類型的表達式,且它們的類型必須相同。下面是一個利用運算符的例子:
ratio=denom==0?0:num/denom;
當Java計算這個表達式時,它首先看問號左邊的表達式。如果denom等於0,那麼在問號和冒號之間的表達式被求值,並且該值被作為整個表達式的值。如果denom不等於零,那麼在冒號之後的表達式被求值,並且該值被作為整個表達式的值。然後將整個表達式的值賦給變數ratio。
條件a:b;
等同於
if(條件)
{
a;
}else
{
b;
}
java三元表達式怎麼算
舉個簡單例子吧。
int a=1;int b=2;int c= ab?1:0,結果c 為0。ab 為條件,後面當條件為true時返回”:”前面的結果,反之返回”:”後面的結果。
三元運算符是軟體編程中的一個固定格式,語法是「條件表達式?表達式1:表達式2」。使用這個演算法可以使調用數據時逐級篩選。
語法為:條件表達式?表達式1:表達式2。
說明:問號前面的位置是判斷的條件,判斷結果為bool型,為true時調用表達式1,為false時調用表達式2。其邏輯為:「如果為條件成立或者滿足則執行表達式1,否則執行第二個。」常用在設置默認值,例如某個值不一定存在,則判斷這個值是否存在,不存在給默認值(表達式2)
關於java三元運算
這個問題比較有意思,我查了下知道上的其他問題:
System.out.println(true?x:0); 和 System.out.println(true?x:i);
的輸出結果不一樣。前者輸出x,後者輸出88。
在程序執行的時候會自動匹配數據類型調用對應的方法,但這兩次調用的不是同一個方法。
System.out.println(true?x:0);調用的是println(char);
System.out.println(true?x:i); 調用的是println(int);
區別在於編譯的時候,使用變數i作為傳遞的參數時,三元運算符會保留期變數名作為參數,而在取i的值時會根據i的類型匹配方法;
而使用0最為傳遞參數時,編譯器在選擇數據類型時會參考「:」兩側的數據類型,如果匹配或足以存儲該數據則存儲為同一數據類型,如果不匹配則替換成其他數據類型。
x在編譯時被存儲為char型,而0因為沒有指定數據類型且可以被char這個數據類型所表示,所以被保存為char型。即使使用強制類型轉換也會被忽略,因為常量的數據類型轉換會在編譯器編譯之前一步進行,就像gcc處理宏一樣,所以不會起到強制類型轉換的作用。
java 三元運算符?: 為什麼從右向左運算?
int a = 1 ? 2 : 3 ? 4 : 5;
如果從左到右結合,即a = (1 ? 2 : 3) ? 4 : 5 = 2 ? 4 : 5 = 4;
如果從右到左結合,即a = 1 ? 2 : (3 ? 4 : 5) = 1 ? 2 : 4 = 2;
實際運行int a = 1 ? 2 : 3 ? 4 : 5;得到a=2;即條件運算符是從右到左結合的。
從這個結果可以理解出是從右到左結合的,至於為什麼要從右到左,我只能說這是語法規定。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/195585.html
微信掃一掃
支付寶掃一掃