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 行交换它们。