programming-languages - 当语言只有“循环而不是零”时,如何比较数字?
问题描述
作为一个爱好项目,我一直在为Chef开发一个 IDE ,这是一种深奥的编程语言。在 Chef 中编写各种测试程序时,我意识到实现一个简单的排序算法,甚至比较两个整数以查看哪个更大,当语言中唯一的比较和分支语句是一个循环时,这是一个重大挑战。将在数字非零时重复。例如:
Dissolve the sugar. <-- execute loop if value of 'sugar' is non zero
Add flour to mixing bowl. <-- add value of 'flour' into mixing bowl
Set aside. <-- break out of the loop
Stir until dissolved. <-- mark the end of the loop
我确实有一个可行的解决方案来比较 Chef 中的两个整数,但它有 40 行长!
这是我在 Java 中的方法的等价物,大多数人会发现它比我编写的 Chef 代码更具可读性:-)
public static void main(String[] args) {
int first = 100;
int second = 200;
int looper = 1;
int tester;
int difference = first - second;
int inverse = difference * -1;
while (looper != 0) {
difference -= 1;
inverse -= 1;
tester = 1;
while (difference != 0) {
tester--;
break;
}
while (tester != 0) {
System.out.println("First is bigger");
exit(1);
}
tester = 1;
while (inverse != 0) {
tester--;
break;
}
while (tester != 0) {
System.out.println("Second is bigger");
exit(1);
}
}
}
我的问题是,当我只有一个非零的循环时,比较两个数字的最佳方法是什么?