Java三元運算子詳解


什麼是Java環境中的運算子?

運算子是一些特殊的字元、符號或資料指示符,它們能夠在Java環境中執行一些特定的操作。有多個運算元(變數)可以參與此操作。編譯成功後,我們得到預期的輸出。Java語言中有很多運算子,主要用於操作Java構建程式碼中關鍵變數的實際值。

對於三元運算,首先是一個條件,後跟問號(?),然後是如果條件為真則執行的方法的表示式,後跟冒號(:),最後是如果條件為假則執行的表示式。只有當生成的語句太短以至於無法執行該過程時,才應使用三元語句。否則,應編寫一個普通的“if語句”。

三元運算子的目的是使程式碼在實際環境中更簡潔易讀。將複雜的if語句轉換為三元運算子違背了這一目標。Java程式設計中的三元運算子是一個條件表示式,可用於替換某些操作的“if...else”條件。在本文中,我們將學習如何透過使用某些邏輯和演算法來實現Java三元運算子難題。

什麼是三元運算子?

  • 三元運算子是一個Java環境運算子,它採用三個整數資料型別來執行特定操作。

  • 在Java程式設計中,它是一種廣泛使用的方法,用於繞過“if...else”條件以減少程式碼的複雜性。

  • 作為表示“if...else”方法的另一種方法,它遵循相同的演算法,但在記憶體中佔用的空間更少。

  • 三元運算子由三部分組成:包含布林表示式、真值部分和假值部分。根據這些輸入,決定給定的條件是真還是假。

  • 根據給定條件的結果,三元運算子工作(條件,表示式1,表示式2)。

  • 一個運算元是T型別(byte),一個short或char值,另一個是常量;它只表示條件表示式的T型別。

三元運算子演算法

  • 步驟1 - 開始程式。

  • 步驟2 - 宣告變數。

  • 步驟3 - 輸入一個int的值。

  • 步驟4 - 使用三元(條件)運算子檢查條件。

  • 步驟5 - 顯示答案。

  • 步驟6 - 終止程序。

語法

condition to be checked? value_find_if_true : value_find_if_false
class Solutionternaryop {
   public static String getNearestNumber(String number1, int dist1, String number2, int dist2) {
      return "?";
   }
}
Or;
Condition check ? expression given no.1 : expression given no.2;

該語句計算以確定條件為真還是假。以下是一個示例,用於區分“if...else”條件和“三元運算子”之間的區別。

“if...else”條件

int x = 10, y = 20, ans;
if (x == 10) {
   if (y == 20) {
      ans = 30;
   } else {
      ans = 50;
   }
} else {
   ans = 0;
}
printf ("%d\n", ans);

“三元運算子”

int x = 10, y = 20, ans;
ans = (x == 10 ? (y == 2 ? 30 : 50) : 0);
printf ("%d\n", ans);

不同的方法

  • 方法1 - 查詢兩個數中最大的數

  • 方法2 - Java三元運算子難題

方法1:查詢兩個數中最大的數

在這裡,我們實現了各種邏輯,使用三元運算子獲得最大數。對於此過程,時間複雜度和輔助空間複雜度均為O(1)。

示例1

import java.io.*;
public class Ternaryextupoint {
	public static void main(String[] args){	
		int a1 = 50, a2 = 100, max;
		System.out.println("First num coming by as: " + a1);
		System.out.println("Second num coming by as: " + a2);	
		max = (a1 > a2) ? a1 : a2;	
		System.out.println("The Maximum Is Here = " + max);
   }
}

輸出

First num coming by as: 50
Second num coming by as: 100
The Maximum Is Here = 100

示例2

import java.io.*;
public class Ternarypotupoint {
	public static void main(String[] args){	
		int s1 = 500, s2 = 100, res;
      System.out.println("First num mentioned in the data: " + s1);
		System.out.println("Second num mentioned in the data: " + s2);
		res = (s1 > s2) ? (s1 + s2) : (s1 - s2);
		System.out.println("Result: Here the largest number is - = " + res);
	}
}

輸出

First num mentioned in the data: 500
Second num mentioned in the data: 100
Result: Here the largest number is - = 600

示例3

public class Ternarybubooleantupoint {
	public static void main(String[] args){
		boolean condition = true;
		String result = (condition) ? "True It Is" : "False It Is";
		System.out.println(result);
	}
}

輸出

True It Is

使用Java環境的三元運算子難題

使用三元運算子難題,我們可以確定語句的值是真還是假。

示例1

public class ternaryoppuzzle {
	public static void main(String[] args) {
      char y = 'Y';
      int k = 0;
      System.out.print(true ? y : 0);
      System.out.print(false ? k : y);
	}
}

輸出

Y89

執行程式後,我們可以看到這裡的輸出是Y89。如果我們對其進行解碼,X是第一個語句,其中89是第二個。

結論

透過本文,我們學習了使用Java語言的三元運算子方法。在這裡,我們體驗了三元運算子的許多優點,我們使用此運算子構建了這個難題。可讀性、效能、使用巢狀緊湊特性繞過if-else語句的功能使此特性在Java中非常獨特。

更新於:2023年4月10日

242 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告