跳轉到內容

Javagony/條件:比較兩個數字

來自華夏公益教科書,開放的書籍,為開放的世界

正如前言中所述,Javagony 沒有 if/else 語句。但是,可以透過將程式碼放在 try 塊中並在滿足條件時引發錯誤來使用 try/catch 語句。如果 try 塊中發生錯誤,程式碼將移動到 catch 塊。否則,它將繼續在 try 塊中執行。因此,我們可以將 catch 塊視為 if 塊,將 try 塊(第一行之後的發生的一切)視為 else 塊。只要確保您的程式碼在第一行之後不會在 try 塊中產生錯誤,如果您正在編寫不安全的程式碼(例如從檔案載入),請考慮在 try 中放入 try/catch 語句。

讓我們從最簡單的開始,檢查兩個數字是否相等。

檢查兩個數字是否相等

[編輯 | 編輯原始碼]

正如您可能已經知道的那樣,如果您減去兩個相等的數字,您將得到零。小學數學告訴我們,不可能將數字除以零,如果您嘗試在 java 中這樣做,它將導致錯誤。以下程式碼定義了兩個變數 x 和 y。如果您想,您可以要求使用者輸入它們。在這個示例中,我們將保持簡單,它們的值將寫在程式碼中。

public class Javagony
{
   public static void main(String[] args)
   {
      int x=5;
      int y=5;
      
      try
      {
         int temp=1/(x-y);
         
         System.out.println("x =/= y");
      }
      catch(Exception IO)
      {
         System.out.println("x == y");
      }
   }
}

比較兩個整數以檢查哪個更大

[編輯 | 編輯原始碼]

假設 x 和 y 都是整型變數,並且它們的值已在程式中定義。要檢查哪個整數更大,x 或 y,我們將使用 Math.addExact(x,Integet.MAX_VALUE-y) 方法。整數變數可以儲存的最大數字是 2,147,483,647。如果普通加法的結果超過此值,它將向下取整。但是,如果使用 Math.addExact 方法,它將丟擲異常。這種行為可以利用到我們的優勢。

public class Javagony
{
   public static void main(String[] args)
   {
      int x=8;
      int y=5;
      
      try
      {
         int temp=Math.addExact(x,Integer.MAX_VALUE-y);
         
         System.out.println("x <= y");
      }
      catch(Exception IO)
      {
         System.out.println("x > y");
      }
   }
}

如果我們想檢查 y 是否大於 x,而不是 y 是否大於或等於 x,我們可以很容易地在第 10 行交換它們。

華夏公益教科書