Javagony/條件:比較兩個數字
外觀
< 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 行交換它們。